このコードの太字部分が何をしているのか誰かに説明することができますか?Cのチャットクライアント? (Cネットワークプログラミング)
while (1)
{
**FD_ZERO(&readfds);
FD_SET(0, &readfds); /* add stdin */
FD_SET(sock, &readfds);**
/* BLOCK on select() */
**select(FD_SETSIZE, &readfds, NULL, NULL, NULL);**
**if (FD_ISSET(0, &readfds))**
{
char msg[1024];
scanf("%[^\n]", msg); /* read everything up to the '\n' */
getchar(); /* read (skip) the '\n' character */
/* write the message to the socket connection */
int n = write(sock, msg, strlen(msg));
if (n < strlen(msg))
{
perror("write() failed");
return EXIT_FAILURE;
}
}
**if (FD_ISSET(sock, &readfds))**
{
char buffer[1024];
int n = read(sock, buffer, 1024);
if (n < 1)
{
perror("read() failed");
}
else
{
buffer[n] = '\0';
printf("Rcvd msg from server: %s", buffer);
}
}
}
ああ太字は表示されませんでしたが、あなたはそれらをダブルアスタリスクで見ることができます。 4つの部分があります。 – Aerovistae
'man select'を読んだことがありますか? – Mat
申し訳ありません、それを打つ。私はそれを完全に理解していませんが。私はそれについて考えている。 – Aerovistae