WIZnet Developer Forum

TCP loopback 테스트에서 Sn_SR의 listen 상태 유지;

안녕하세요, wiz550io 제품을 사용하여 TCP loopback(server)로 통신 테스트를 하려합니다.

사용한 ioLibrary 함수는 참부한 파일과 같습니다.

설 명절 잘 보내시길 바랍니다.

Application의 loopback(tcps) 테스트를 진행하려고 하는데, main함수의 while(1){} 함수에

  • loopback_tcps(0,tcp_loopback_data,7); // 0번 소켓, 데이터 버퍼 배열 이름, 포트번호
    순서로 입력해 주었습니다.
    그리고 Sn_SR, IR, MR, CR, PORT을 확인하며, 소켓의 상태 및 응답을 살피고 있습니다.
    소켓의 listen 상태(Sn_SR = 0x14)에서 established로 넘어가지 않는데, loopback_tcps 함수 이외에 추가로 설정해주어야 하는 요소가 있는지 궁금합니다.
  • 사용하는 프로세서 : NucleoSTM32F446RE 입니다.

w5500_0209.zip (2.8 MB)

안녕하세요

TCP Server는 Listen 상태에서 TCP Client가 접속을해야 Established 상태로 바뀌는데
TCP Client에서 접속을 시도하고 있으신건가요?
시도하고있으신거라면 ip, port 등을 한번더 체크해보시기 바랍니다.

네, pc가 client 역할을 맡았습니다.
터미널에서 wiz550io의 IP와 포트번호를 연결하여 data sending을 하는데, 돌아오는 data는 없고 Sn_SR의 변화도 달리 없습니다.ㅠ

우선 Ping 테스트를 진행하여 PC와 wiz550io 간에 연결이 되어있는지 확인하시기 바랍니다.
보내주신 코드상에서 TCP Server의 port번호를 7로 설정하셨던데 PC에서 wiz550io 포트를 7로 접속하고 계신건가요?

답변 감사합니다.
알려주신대로 한번 더 확인해 보았습니다.

초기 설정에서 ip를 192.168.80.121 로 설정하였습니다.

ping 테스트도 해당 ip로 진행하였습니다.
ping 테스트는 정상적으로 진행됩니다.
ping테스트

그리고 다시 포트 7번에 맞추어 TCP 연결을 하였습니다.
통신이 종료되었다는 메세지만 받았습니다.

통신이 계속 강제 종료된다면, 설정을 잘 못하여 그런건가요?? 아니면 소스 코드 상에서 잘못 지정해주어서 그런건가요??ㅠ

확인해주셔서 감사합니다.

port 번호 7이 일반적인 경우는 아닙니다.
5000 으로 변경해보시길 바랍니다.
wireshark를 설치하셔서 패킷을 확인해보시면 좋을것 같습니다.

감사합니다.
포트 번호를 5000으로 바꾸어 확인해보니 TCP 통신이 원활히 되는 것을 볼 수 있었습니다.

port 번호 7이 일반적인 경우가 아니라고 하셨는데, 포트 번호를 할당하는데도 일반적인 규칙이 있는지 궁금합니다. :smiley:

안녕하세요 아래내용 참고하시기바랍니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.