728x90
반응형
[Spring Integration] Multi TCP server 구현에서 구현한 내용을 Spring Boot Test를 이용해서 Test를 해보았습니다.
@Test
void tcpSend1() throws IOException {
Socket socket = new Socket("localhost", 8083);
OutputStream output = socket.getOutputStream();
byte[] data = {0x02, 0x10, 0x11, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0xCF, (byte) 0xEC, 0x03};
output.write(data);
socket.close();
}
@Test
void tcpSend2() throws IOException {
Socket socket = new Socket("localhost", 8084);
OutputStream output = socket.getOutputStream();
byte[] data = {0x02, 0x10, 0x11, 0x01, 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0xCF, (byte) 0xEC, 0x03};
output.write(data);
socket.close();
}
TCP server에서는 데이터가 정상적으로 수신되었는데 Test 로그에는 아래와 같이 에러가 발생하였습니다.
14:43:31.305 [pool-2-thread-1] ERROR o.s.i.i.t.c.TcpNetServerConnectionFactory 149 - Error on ServerSocket; port = 8084
java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:555)
at java.base/sun.nio.ch.Net.bind(Net.java:544)
at java.base/sun.nio.ch.NioSocketImpl.bind(NioSocketImpl.java:648)
at java.base/java.net.ServerSocket.bind(ServerSocket.java:388)
at java.base/java.net.ServerSocket.<init>(ServerSocket.java:274)
at java.base/java.net.ServerSocket.<init>(ServerSocket.java:218)
at java.base/javax.net.DefaultServerSocketFactory.createServerSocket(ServerSocketFactory.java:224)
at org.springframework.integration.ip.tcp.connection.TcpNetServerConnectionFactory.createServerSocket(TcpNetServerConnectionFactory.java:226)
at org.springframework.integration.ip.tcp.connection.TcpNetServerConnectionFactory.setupServerSocket(TcpNetServerConnectionFactory.java:143)
at org.springframework.integration.ip.tcp.connection.TcpNetServerConnectionFactory.run(TcpNetServerConnectionFactory.java:118)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)
14:43:31.305 [pool-3-thread-1] ERROR o.s.i.i.t.c.TcpNioServerConnectionFactory 149 - Error on ServerChannel; port = 8083
java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:555)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:337)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:89)
at org.springframework.integration.ip.tcp.connection.TcpNioServerConnectionFactory.run(TcpNioServerConnectionFactory.java:139)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:842)
Spring Boot Test 소스가 TCP server 프로젝트와 같이 있는 상태에서 에러가 발생하였는데 Spring Boot Test 소스를 TCP server 프로젝트와 다른 프로젝트에서 실행하니 에러가 발생안했습니다.
정리하면 동일 프로젝트에서 동일 포트로 TCP server와 TCP client를 같이 사용하면 발생하는 에러이고 동일 포트로 TCP server와 TCP client가 다른 프로젝트에 있으면 발생 안합니다.
728x90
반응형
'개발 > spring, spring boot' 카테고리의 다른 글
[Spring Integration][Spring Boot Test] Socket 통신 테스트 시 빈 데이터 전송 해결 (0) | 2024.02.05 |
---|---|
[Spring Integration][Spring Boot Test] Socket 통신 테스트 시 빈 데이터 전송 이슈 (0) | 2024.02.02 |
[Spring Integration] Multi TCP server 구현 (1) | 2024.01.31 |
[Spring Integration] TcpNioServerConnectionFactory vs TcpNetServerConnectionFactory (0) | 2024.01.31 |
[WebSocket][STOMP] Whoops! Lost connection to ws 에러 해결 (0) | 2024.01.30 |