2017-08-03 3 views
1

私のサーバーコード:https://stackoverflow.com/a/41765722/3871754春の統合のSocketException:接続がリセットさ

私のクライアントコード:私はクライアントを実行するとhttps://alvinalexander.com/blog/post/java/simple-java-socket-client-class-program

が、私は、サーバーのログに乗る:私はそれをテストo.s.i.i.tcp.connection.TcpNetConnection : Read exception 127.0.0.1 SocketException:Connection reset

ツール:https://sourceforge.net/projects/sockettest/それから、サーバーがsockettestアプリケーションで正常に動作しますが、これはクライアントの問題だと思います。

どうすれば修正できますか? org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory

答えて

1

は、クライアント要求をデシリアライズするByteArrayCrLfSerializerを使用しています。

/** 
* Reads data in an InputStream to a byte[]; data must be terminated by \r\n 
* (not included in resulting byte[]). 
* Writes a byte[] to an OutputStream and adds \r\n. 
* 
* @author Gary Russell 
* @since 2.0 
*/ 
public class ByteArrayCrLfSerializer extends AbstractPooledBufferByteArraySerializer { 

あなたは、あなたのクライアントが本当に\r\nで終了メッセージを送信していることを確認する必要があります。サンプルによると、それはありません:

writeToAndReadFromSocket(socket, "GET /\n\n"); 
+0

サーバー上でシリアライザを変更するには?私はByteArrayStxEtxSerializerを使用したい – user3871754

+0

'AbstractConnectionFactory.setDeserializer()' –

+0

私の場合、それはTcpNetServerConnectionFactoryでした – user3871754