嗨,我是套接字编程 C 的新手。现在我正在开发聊天程序,我可以成功发送和接收消息,但问题是当客户端请求发送该客户端在线的用户列表并且一旦服务器将消息发送回客户端,则消息成功打印当前连接的客户端列表,但一旦显示它就不会退出循环。下面只是代码的一部分。
服务器端(server.c)
pthread_mutex_lock(&list_mutex);
for(i =0; i < NotEndOfList; i++)
{
sprintf(message_replay, "Server: %s \n", usersList[i].name);
write(sock , message_replay , strlen(message_replay));
}
pthread_mutex_unlock(&list_mutex);
客户端(Client.c)
int i =0;
while(i < NotEndOfList)
{
if( recv(sock , server_reply , 2000 , 0) < 0)
{
puts("recv failed");
break;
}
i++;
puts(server_reply);
}
样本输出
User A -->:
//List
User A
User B
User C
// Loop
正确的样本输出
User A -->:
//List
User A
User B
User C
User A -->:
非常感谢你