私の C アプリケーションでは、次の方法でソケット上のデータを待ちます。
printf("Opening socket and wait for data.\n");
while (i < 5)
while((connection_fd = accept(socket_fd,
(struct sockaddr *) &address,
&address_length)) > -1)
{
bzero(buffer, 64);
n = read(connection_fd,buffer,64);
if (n < 0) printf("ERROR reading from socket");
printf("Here is the message of length %d bytes:\n\n", n);
for (int i = 0; i < n; i++)
{
printf("%02X", buffer[i]);
}
printf("\n\n");
break;
}
i++
}
つまり、Socket から 5 回のデータを読み取るということですが、見た目では 5 つの異なる接続を開いているように見えますね。接続を一度だけ開き、それを維持してから、この接続で利用可能なデータがあるかどうかを確認することはできますか?
ありがとう、パトリック!