1
私は、C++サーバーとJavaクライアントを使用してチャットプログラムを作成します。
クライアントからメッセージを受信したことに責任があることを、関数のコード:
void *recieve(void* *v)
{
while (true)
{
bzero(buffer, 256);
n = read(socketfd, buffer, 256);
if (n < 0)
exit(1);
printf("Client: %s", buffer);
}
}
サーバーにメッセージを送信する責任ファンクションタールのコードだけである:
ps.println(msg);
psは印刷ストリームです。
サーバーにメッセージを送信すると、「hello world」と言うと、C++サーバーは「クライアント:hello worldClient」というメッセージを表示します。
誰かが私にこれを手伝っていただければ幸いです。 (私の英語が良くない場合はお詫び申し上げます) ありがとう!
読み込みバイト数だけの書き込みと書き込みを試みましたか?そして、Joachimが言ったように、ヌル終了バイトxを忘れないでください。 – Naliwe
ところで、あなたは 'read'呼び出しのエラーチェックで重要なケースを逃しています:あなたは正しく切断しません。 –
@JoachimPileborgは、[bzero() '](http://man7.org/linux/man-pages/man3/bzero.3.html)では、256バイト未満の場合にヌルターミネータが存在することを確認していません受け取った? – Christophe