こんにちは、ソケットプログラミングCは初めてです。現在、チャットプログラムに取り組んでおり、メッセージの送受信に成功していますが、問題は、クライアントがそのクライアントのユーザーのリストをオンラインで送信するように要求し、サーバーがメッセージをクライアントに送り返すと、メッセージが正常に印刷されることです現在接続されているクライアントのリストですが、一度表示されるとループから外れません。以下は、コードの 1 つのセクションのみです。
サーバー側 (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 -->:
どうもありがとうございました