1

我正在用 C 编写一个用于 LAN 聊天的程序。对于一个聊天应用程序,我们需要在他发送后立即接收 clints 聊天。但问题是我使用gets()函数从一侧输入聊天,并且在gets运行时,如果聊天来自另一端,直到我将聊天发送到另一端才会收到. 这是我用于在服务器端发送和接收聊天的代码。我已经删除了我使用的所有条件,因为它们都被证明毫无价值。请告诉我一种在发送后立即从另一端显示聊天的方法,无论当前执行的是哪个语句。提前致谢。这是我目前发送和接收部分的代码:

while(1)
{
     printf("\n");
     gets(send_data);
     send(connected, send_data,strlen(send_data), 0);
     bytes_recieved = recv(connected,recv_data,1024,0);
     recv_data[bytes_recieved] = '\0';
     printf("Client Says: %s " , recv_data);
     fflush(stdout);
}
4

1 回答 1

5

而不是gets您将需要使用非阻塞 I/O 或使用线程来启用并行计算并同时侦听多个客户端

这是非阻塞 I/O的介绍页面

于 2012-05-14T10:38:49.617 回答