250x250
syk531
하루
syk531
전체 방문자
오늘
어제
  • 분류 전체보기 (166)
    • 개발 (166)
      • java (11)
      • kotlin (7)
      • spring, spring boot (35)
      • Javascript (4)
      • Tyhmeleaf (2)
      • Kafka (17)
      • Docker (8)
      • Kubernetes (3)
      • Elastic Stack (4)
      • react native (3)
      • Web (4)
      • GIS (3)
      • 리눅스 (16)
      • Windows (2)
      • 네트워크 (2)
      • 안드로이드앱 (5)
      • git (2)
      • Tool (15)
      • 프로젝트 (7)
      • 백준알고리즘 (14)
      • DB (2)

인기 글

최근 글

블로그 메뉴

    공지사항

    태그

    • 뉴스앱
    • 티스토리챌린지
    • 오블완

    최근 댓글

    티스토리

    hELLO · Designed By 정상우.
    syk531

    하루

    개발/spring, spring boot

    [Spring Integration] Multi TCP server 테스트 시 Address already in use: bind 에러

    2024. 1. 31. 14:56
    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
      '개발/spring, spring boot' 카테고리의 다른 글
      • [Spring Integration][Spring Boot Test] Socket 통신 테스트 시 빈 데이터 전송 해결
      • [Spring Integration][Spring Boot Test] Socket 통신 테스트 시 빈 데이터 전송 이슈
      • [Spring Integration] Multi TCP server 구현
      • [Spring Integration] TcpNioServerConnectionFactory vs TcpNetServerConnectionFactory
      syk531
      syk531
      기억을 위해 기록을.

      티스토리툴바