-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