2017-08-03 49 views
1

我的服務器代碼:https://stackoverflow.com/a/41765722/3871754Spring集成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應用程序正常工作,我認爲這是一個客戶端問題。

我該如何解決?

回答

1

org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory使用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

相關問題