私はUnix、Cの割り当てを行っています。相互に対話するサーバーとクライアントを作成しています。基本的なフレームワークをセットアップしたと確信していますが、メッセージを送受信しようとすると機能しません。
これはサーバーのwhileループコードです。関連するコードのみを表示しようとしました:
while(1) {
clntAdrLen = sizeof(clntAddr);
clntFd = accept(srvrFd, (struct sockaddr*)&clntAddr, NULL);
if (fork() == 0) {
send(clntFd, "YourMessage", 12, NULL);
close(clntFd);
exit(0);
} else {
close(clntFd);
}
}
クライアントのコードは次のとおりです。
do {
result = connect(srvrFd, (struct sockaddr*)&srvrAddr, srvrLen);
if(result==-1) {
sleep(1);
}
recv(srvrFd, buf, sizeof(buf), NULL);
printf("%s", buf); //here I try to print the message sent by server
} while (result==1);
サーバーとクライアントの両方を実行すると、「YourMessage」が出力されます。代わりに、次のように出力します。
N0�,
私はそれを間違っているだけですか?ありがとう