W7200 소켓 재접속 문제


#1

저희는 현재 W7200 을 SERVER 로 설정하여 사용하고 있고, PC와 장비간 ETHERNET 연결용으로 사용하고 있습니다.
헌데, 사용 중 LAN 선을 PC 에서 분리 후 다시 꼽고 연결을 시도 하면 연결이 되지가 않습니다. (리셋한 후에는 다시 연결 됩니다.)

에러 내용은 다음과 같습니다.

에러 코드 종류
이름 : WSAECONNREFUSED
값 : 10061
설명 : 서버가 연결시도를 거절함. 수신 대기열이 가득찬 상태에서 클라이언트의 connect 호출이 있을 경우

이 에러가 뜨는 이유가 혹시 W7200 에 설정되어 있는 연결 가능한 클라이언트 갯수가 1개로 설정되어 있어서 그런가요?
혹시 그렇다면 클라이언트 갯수를 늘릴 수 있는 방법이 있나요?
아니면 다른 문제인지… 펌웨어를 저희가 볼 수 없으니 원인을 분석할 수가 없네요…

keepalive 기능을 사용하면 될 것 같기도 한데…예제 소스코드는 어디서 볼 수 있나요? 가능하다면 링크 좀 걸어주십시오.

답변 부탁드립니다.


#2

안녕하세요 고객님.

현재 사용하고 계시는 제품이 정확히 W7200이 맞으신지 궁금합니다.

W7200의 경우 드라이버 코드가 웹에 공개되어 있는 상태인데 코드를 볼수 없다고 하시면 아마도 WIZ127SR로 생각 됩니다.

정확히 알려주시면 문제해결에 도움이 될 것 같습니다.

또한 알려주신 에러 코드 종류가 어디서 어떻게 발생한 코드인지 좀 더 정확한 설명 부탁드립니다.

그리고 W7200에 경우 소켓이 총 8개가 있으므로 8개의 접속이 가능합니다. 어디서 무엇을 설정해서 연결 가능한 클라이언트 갯수가 1개인지도 정확한 설명 부탁드립니다.

감사합니다.


#3

사용하고 있는 제품은 w7200 이 맞구요… 저희 메인보드에 실장되어 사용중입니다.

w7200 과 stm32f103 MCU 가 시리얼로 연결되어 PC와 이더넷 통신을 하고 있습니다.

현재 PC s/w 에 스위칭 허브를 통해 W7200 에 연결되구요… PC S/W 상에서 랜 케이블을 뺏다가 꼽을 경우 저러한

에러코드가 리턴되고 있습니다.

W7200 의 코드가 공개되어 있다고 하셨는데 위치 링크 좀 걸어 주시면 감사하겠습니다.

또 keepalive 함수 사용 예제도 링크 걸어 주시면 감사하겠습니다.

이상입니다.


#4

안녕하세요 고객님.

Driver code 링크 걸어 드립니다.

https://www.wiznet.co.kr:8011/UpLoad_Files/ReferenceFiles/W7200_DRIVER_V120.zip

위 에러코드는 PC software에서 발생하는 것인지 W7200에서 발생하는 것인지 W7200과 연결된 MCU에서 발생하는 것인지 궁금합니다.

keepalive는 데이터시트의 Sn_CR의 SEND_KEEP부분을 확인하시면 되고, 주의할 점은 connection이 연결된 후 데이터를 한 번 이상 보낸 후부터 사용이 가능합니다.

감사합니다.


#5

PC 소프트웨어에서 발생하는 에러입니다.


#6

링크된 곳이 W7200 의 소스코드 인가요??

KEEPALIVE 함수 사용 예제도 링크 걸어주시면 감사하겠습니다.


#7

안녕하세요 고객님.

해당 문제는 7200에서는 아직 open되서 연결이 성립되어 있는 상태인데 PC S/W에서는 연결을 종료 후 재접속을 시도하는 것으로 생각 됩니다. 그래서 connection이 안되는 것 같습니다.

해당 문제는 7200에서 데이터를 한번 전송 후 ack를 받지 못하면 timeout이 발생하며 close를 하는 방법과 말씀하신 keepalive를 이용하면 될것 같습니다.

keepalive를 이용한 별도의 예제 코드는 없기 때문에 데이터시트와 드라이버를 참조하여 설계하셔야 할 것 같습니다.

감사합니다.


#8

w7200 프로젝트 소스 좀 보내주십시오.


#9

안녕하세요.

저희 제품에 대한 각종 자료는 회사 홈페이지에 모두 있습니다.

http://www.wiznet.co.kr/

여기를 참조하시면 됩니다.

감사합니다.