0

私は、UDP プロトコルに基づくサーバー クライアント アプリケーションに取り組んでいます。サーバーは C++ で記述され、クライアントは C# で記述されています。

サーバー側では、recvfrom() を使用してバッファーを取得します。

int bufLen = recvfrom(s, buf, 1024, NULL, (sockaddr*)&addr, &addrlen);

奇妙なことに、受信した buf はクライアントから送信したものとまったく同じですが、bufLen は -1、つまり SOCKET_ERROR です。

何が問題なのかわかりません。助けてください。どうもありがとう。

4

1 に答える 1

1

データグラムが大きすぎるか、バッファが小さすぎます。

データグラムはバッファよりも大きいため切り捨てられ、recvfrom からエラーが返され、GetLastError() は 10040 ('WSAEMSGSIZE') を返します。

于 2014-12-29T12:54:56.580 に答える