SOCKETプログラミングにおける「パーマ…」についての質問


ここ数日SOCKET通信を勉強していますが、ネットプログラミングについては空白です.勉强の过程の中でネット上で1段のソースコードを探して、孙鑫先生の教程の中のだそうです.新しいプロジェクトを作成し、ソースコードを実行するのは正常なようです.そこで自分でプログラムを変更して、再実行すると、クライアントが初めてデータを受信したときに「パーマ」を表示し続けたことがわかります.「の文字化けし.ネットで資料を探して、何度もテストして、以下の原因があることを発見しました:1、クライアントとサーバー側のポートが一致しているかどうかを検査します.ポートが一致しない時サーバー側が間違いを犯す可能性があります2、プログラムのロジックを検査します.
SOCKET sockConn = accept(sockSrv, (SOCKADDR*)&addrClient, &len);
char sendBuf[100];
send(sockConn, sendBuf, strlen(sendBuf) + 1, 0);
char recvBuf[100];
recv(sockConn, recvBuf, 100, 0);
printf("%s
"
, recvBuf); sprintf(sendBuf, "Welcome %s to http://www.sunxin.org", inet_ntoa(addrClient.sin_addr)); closesocket(sockConn);

送信バッファが送信される前にデータがないため、クライアントがnullを受信すると「パーマ」と表示されます.
sprintf(sendBuf, "Welcome %s to my site",
inet_ntoa(addrClient.sin_addr));

send関数に移動する前に、問題が解決します.3、ネット上ではバッファが初期化されていないため、エンドマークが検出されず、アクセスが限界を越えたという人が多い.しかし、バッファを初期化した後も、問題は解決されませんでした.4、パソコンは本当に熱いかもしれません.ハハハ