Hi
Im not sure if this post should be in this board or the network programming board, anyway here is my question.
I am coding a server program with sockets on linux and when I got to the recv part I noticed a unexpected behaviour.
Here is the code for the recv data part:
Code:
//read some data
char recvBuf;
do
{
error = recv(new_fd, &recvBuf, 1, 0);
switch (error)
{
case -1:
cout << "[ERROR] recieving data" << endl;
recvBuf = '.';
break;
case 0:
cout << "Connection to client was lost" << endl;
recvBuf = '.';
break;
default:
cout << recvBuf;
}
} while (recvBuf != '.');
Now when I run this and connect to the server with telnet, the server waits until I press ENTER until it writes recvBuf to the screen. But if I press '.' the program ends without me pressing ENTER.
How can the text I type in telnet be saved and then printed, shouldn't the recvBuf be overwritten for every new data the server reads ?
Thanks for helping me understand this.