0

たとえば、「1234」を送信すると、SFML ライブラリを使用する C++ であるサーバーは「1234╠╠╠╠╤lσ╝╝√=♦↑עσ」を読み取ります。C++ SFML clinet からサーバーに送信する場合は、すべて問題ありません。Async Socket ライブラリを使用して Onj-c で記述された元のクライアント。なんてこと?(すべての TCP)

4

4 に答える 4

2

参考になるかわかりませんが、「1234\0」のようなものを送ることをお勧めします。

于 2010-11-20T19:54:18.430 に答える
0

SFML での単純な実装は、実際に null で終わるフィールドを想定しており、生のバッファを表示します。実際には終了しません。送信文字列を \0 で終了するか、代わりに 12345 のようなものを送信し、出力を変更して [len] に \0 を配置するか、または同様にします。

于 2010-11-20T20:05:04.097 に答える
0

ライブラリから文字列をデータの長さと一緒に取得し、[len] に \0 を追加します

于 2010-11-20T21:05:56.623 に答える
0

サーバーは受信したデータが null で終了していると想定しているようですが、クライアントの 1 つが「1234\0」ではなく「1234」を送信しているだけです。したがって、あなたが見ている奇妙な文字は、サーバーのメモリのその部分にたまたまあったガベージである可能性があります.

Wiresharkのようなツールを使用して、ネットワーク上で何が送信されているか、および 2 つのクライアント間で何が異なるかを正確に確認できます。

于 2010-11-20T20:01:31.910 に答える