我在c中使用tcp / ip创建聊天服务器和客户端。我做了服务器部分,它连接多个客户端。在客户端,我有一个while循环,可以发送一行,然后等待服务器回复。我想让客户端轮询send和recv函数来检查另一个客户端是否发送了一些东西。这就是我所拥有的 -
while (1){
char buffer[BUFLEN];
memset(buffer, 0, sizeof buffer);
gets(buffer);
//sendall(sd, buffer, BUFLEN);
send(sd, buffer, BUFLEN, 0);
printf("sent:%s\n",buffer);
//recvline(sd, buffer, BUFLEN);
recv(sd, buffer, BUFLEN, 0);
printf("recieved:%s\n", buffer);
}
如何同时轮询send()和recv()并执行首先出现的那个?
想要做这样的事情......
if(send(sd, buffer, BUFLEN, 0) == true)
send something
else if(recv(sd, buffer, BUFLEN, 0) == true)
receive something
答案 0 :(得分:2)