-2
我正在尝试使用线程实现多客户端的客户端服务器应用程序。为了尝试,我想打印来自每个客户端的消息,但是当我从客户端发送消息时,服务器不会打印任何内容。Multiclient服务器套接字不打印客户端消息
服务器(线程代码)
void comunicationHandler(void *socket)
{
int sock = *(int*) socket;
char msg[2000];
while ((strcmp(msg, "!quit")) != 0) {
if (recv(sock, msg, 2000, 0) < 0)
puts("Error recv");
printf("%s", msg);
}
puts("Client Disconnected\n");
}
当我发送
! “跳槽”,服务器便会在一个无限循环打印消息
客户
for(;;) {
printf("\nInserisci il msg: ");
scanf("%s", msg);
if (strcmp(msg, "!quit") == 0)
break;
write(sd, msg, 2000);
}
尝试printf(“%s \ n”,msg);相反...... stdout不会刷新它的缓冲区,直到它遇到一个换行符。 –
您应该查看[适当的C格式化](// prohackr112.tk/r/properties-formatting)。或者学习如何[彻底模糊你的代码](// prohackr112.tk/r/proper-c-obfuscation)。 –
“*当我发送”!quit“,*”你不知道,但是''break''出''for'循环。 – alk