|
|
I searched through many of the "chat" programs provided on this site, but could not find any that were simple enough, and a lot even used a windows interface. What I want to know how to do, is to make a simple server and a client using a terminal window. All I basically want it to do is this:
SERVER::
>Runs on a hardcoded ip adress and port (for simplicity) and can handle multiple clients.
>Also, needs to somehow keep track of the IP+ports of the users who are logged on. (maybe a string array would work well)
CLIENT::
>Whenever you run the Client, it connects to the hardcoded IP+port.
>As soon as you logon, the server sends you some simple message like "Hello"
>Then, you put in the nickname you want to use.
>Then you enter the chat room, and whatever you type in, the server sends to all the other Clients. like this "MyName> hello chat clients"
Also, if you could, please keep this to as few includes as possible, as far as I can tell, you really only need <iostream>or<stdio> and "winsock2.h". Also, please keep it to standard datatypes (int char string etc.)
Thank you for helping me with this project.
|
|
|
|
|
So basically you don't want anything too fancy, or your teacher will know you didn't do your homework ? Nice try. Given that you've asked in the wrong forum ( or are you learning Managed C++ ? ), I guess you're not the most attentive guy, which probably accounts for your not being able to do your own homework.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
check out "Network Development Kit 2" which can be found on this site.
|
|
|
|
|
Wow Christian...why would I even be in a class where I would program a server. Anyway, this is just for my own use, and the simplicity is just for easier understanding.
|
|
|
|
|
Hey Aaron, can I please have the link to the Network Development Kit 2.
|
|
|
|
|
|
|
A funny thing is that a wizard created that app. Doesnt anyone do it manually anymore? Another problem, is that the only thing that could probably compile it is VC++, which is pretty lame.
|
|
|
|
|
sure a wizard created the app but not the underlying code. Check the source code for the app and you will see that the sdk is not wizard created.
|
|
|
|
|
;P;)
|
|
|
|
|
Ok, I am writing an xbox program that recieves a list of items from a PC application through a UDP socket connection. Each item of the list is sent separately. I have created this thread that constantly listens for the list. The problem is that when the list is longer than around 120 items I get this error: "[XONLINE] udpWarn: [D00212C8] Receive buffer is full (16466 bytes). UDP packet plus 3 data bytes lost." I know that UDP is not very reliable but when the list is say 100 items I have never had it drop a packet.
<br />
#define MAXBUFLEN 1000<br />
DWORD __stdcall ListenerThread( void* listen )<br />
{<br />
WSADATA WsaData;<br />
int iResult = WSAStartup( MAKEWORD(2,2), &WsaData );<br />
if( iResult != NO_ERROR )<br />
Debug("Error at WSAStartup");<br />
<br />
int sockfd;<br />
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int addr_len, numbytes;<br />
<br />
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)<br />
Debug("Socket Creation Error");<br />
<br />
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(8604);
my_addr.sin_addr.s_addr = INADDR_ANY;
memset(&(my_addr.sin_zero), '\0', 8);
<br />
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1)<br />
Debug("Bind Error");<br />
<br />
addr_len = sizeof(struct sockaddr);<br />
char* xrec = (char*)malloc(MAXBUFLEN);<br />
while(true)<br />
{<br />
if ((numbytes=recvfrom(sockfd, xrec, MAXBUFLEN-1, 0, (struct sockaddr *)&their_addr, &addr_len)) == -1)<br />
Debug("Recieve Error");<br />
xrec[numbytes] = '\0';<br />
}<br />
<br />
return 0;<br />
}<br />
|
|
|
|
|
Well, after several days of trying to figure this out I have come to realize that this code is just fine. The problem was the default buffer size on the xbox. I hope someone can at least find this useful. The paramater: cfgSockDefaultRecvBufsizeInK was the problem because by default it is set to 16K so I upped it to 64 just to be safe. Now everything works well.
|
|
|
|
|
Hi people i need some help on creating Digital Circuit
1st: How to implement the logic Results of the truth table of each gate using MFC/C++ programming.
Any demo sample codes would be helpful thanks
|
|
|
|
|
With logic operators. Are you using managed C++, or asking in the wrong forum ?
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
No i am using C++ combining with MFC Programming, i do not know whether this is a managed C++ thingy.
Jingpo
|
|
|
|
|
Then why are you asking in the managed C++ forum ?
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
How can I dock a form on a desktop (like taskbar)? I ve tried with the Dock property but nothing happens.
--Nikola--
modified 7-Dec-20 21:01pm.
|
|
|
|
|
Try in the C++ forum.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
I wana help to develop a disk imaging utility . Any body which can guide me, will be welcomed.
Thanx in advance
MSIRAVIAN
|
|
|
|
|
Hello,
I keep getting a
error C2451: conditional expression of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' is illegal
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
at the spot marked below. I'm so confused... it looks like it should do what I want. Anyone confronted this before?
from main():
...
packetCount = fillPackets(inputString);
cout << "Filled " << packetCount << " packets." << endl;
...
int fillPackets(string inputString) {
string aPacket;
int packetCount = 0;
int x = 0;
cout << "Filling packets...";
while (aPacket = getNextPacket(inputString)) { <code><-- ERROR!</code>
packets[x++] = new packet(aPacket);
packetCount++;
}
cout << "done." << endl;
return packetCount;
}
string getNextPacket(string packetString) {
string aPacket;
static string::const_iterator theIterator = packetString.begin();
int start = 0, end = 0;
while (theIterator != packetString.end() &&
*theIterator != (char) 0 &&
*(theIterator + 1) != (char) 0 &&
*(theIterator + 2) != (char) 0 &&
*(theIterator + 3) == (char) 0 &&
*(theIterator + 4) != (char) 0 &&
*(theIterator + 5) != (char) 0 &&
*(theIterator + 6) != (char) 0) {
++theIterator;
start++;
}
if (theIterator == packetString.end())
return NULL;
theIterator += 7;
start += 7;
while (theIterator != packetString.end() &&
*theIterator != (char) 0 &&
*(theIterator + 1) != (char) 0 &&
*(theIterator + 2) != (char) 0 &&
*(theIterator + 3) == (char) 0 &&
*(theIterator + 4) != (char) 0 &&
*(theIterator + 5) != (char) 0 &&
*(theIterator + 6) != (char) 0) {
++theIterator;
end++;
}
if (theIterator == packetString.end())
return NULL;
aPacket = packetString.substr(start, end);
return aPacket;
}
|
|
|
|
|
Hello, Does Any one know how to create a movie file AVI or MPEG from JPEG or BMP file. I need to create an app that can read images from a directory and create a movie file from that? Please.... any help or pointers in the right directions
|
|
|
|
|
You need it in managed C++ ?
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
I would prefer it in managed c++ or c#, failing that c/c++ would also be ok
do you have any tips/ideas/solutions?
|
|
|
|
|
I asked because most posts here are not for MC++ problems. I *think* DirectShow will do what you want, I looked into it ages ago. I'd recommend using C#, it's easier, and the underlying implimentation is going to do most of the work anyhow, so speed will not differ that much.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|