0

Java ミドルウェア クライアントを objC に移植しています。Java クライアントは、送信の最後に Java の stream.write と stream.flush を使用します。Java クライアントが Echo サーバーに送信するには、stream.writeBytes("\r\n"); を追加する必要があります。その後に、サーバーがメッセージを返送するための stream.flush が続きます。

ミドルウェアのサーバーにメッセージを送信するために asyncsocket を使用していますが、ソケットを正常に開いた後、ミドルウェアは asyncsocket を使用して送信されたメッセージに反応しません。

[socket writeData:sendData withTimeout:-1 tag:0]; 

また、ミドルウェアは、ソケットが閉じているときにバッファ内のメッセージに反応しません。

私は現在使用しています

[socket writeData:[AsyncSocket CRLFData]  withTimeout:-1 tag:0];

ソケットをフラッシュする

4

1 に答える 1

0

思い込みが私を襲うのは、これが最後ではないことはわかっています。

java.io 書き込みは BSD send または sendto と同じであると想定していましたが、他の投稿から、java.io.DataOutputStream は実際には NSMutableData に似ており、書き込みは appendData であると想定しています。つまり、writeInt はエンディアン関数であり、flush は実際の send/sendto コマンドです。

于 2010-11-17T21:10:57.983 に答える