基本的な TCP クライアント/サーバー プログラムがあります。
クライアントとサーバーの両方に、読み取りと書き込みを行うメソッドがあります。初めて実行したときは完全に機能しますが、再度実行すると(ループ中)、何も読み込まれません。
void printout(int newsockfd, char buffer) {
n = write(newsockfd, a2, 256);
n = write(newsockfd, a3, 256);
n = write(newsockfd, a4, 256);
n = write(newsockfd, a5, 256);
n = write(newsockfd, a6, 256);
}
サーバーで
void printout(char buffer[], int sockfd) {
bzero(buffer, 256);
n = read(sockfd, buffer, 256);
printf("%s\n", buffer);
n = read(sockfd, buffer, 256);
printf("%s\n", buffer);
n = read(sockfd, buffer, 256);
printf("%s\n", buffer);
n = read(sockfd, buffer, 256);
printf("%s\n", buffer);
n = read(sockfd, buffer, 256);
printf("%s\n", buffer);
}
a2、a3、a4、a5、および a6 は文字列です。初めて実行すると、すべてが正しく印刷されます。2 回目は何も出力されず、空白行がたくさん出力されます。バッファが何であるかを調べるためにテストしたところ、「」であることがわかりました。問題が何であるか、またはどのように修正できるか知っていますか?