)
我用c ++服务器和java客户端编写聊天程序。
负责从客户端接收消息的函数的代码是:
Age a1 {32};
Age a2 {40};
cout << "Combined ages: " << a1 + a1;
Age a3 = a1 * 2;
// ...etc. etc.
负责向服务器发送消息的函数thar的代码只是:
void *recieve(void* *v)
{
while (true)
{
bzero(buffer, 256);
n = read(socketfd, buffer, 256);
if (n < 0)
exit(1);
printf("Client: %s", buffer);
}
}
其中ps是打印流。
当我向服务器发送消息时,请说&#34; hello world&#34; c ++服务器打印: &#34;客户:hello worldClient&#34;。
如果有人能帮助我,我将不胜感激。 (如果我的英语不好,我道歉) 谢谢!
答案 0 :(得分:2)
read()
函数在到达文件末尾时将返回0。
所以在你的情况下,有一个接收"Hello world"
的第一个循环迭代,然后还有一个迭代,除了read()
返回0之外什么都不会收到。所以“Client:”显示为空字符串。
此外,请注意:
read()
将对应于客户端上的一个println()
。因此,对于较长的消息,您将有可能分批收到它。在输出中,您将在消息文本中看到几个“客户端”。