소켓 에러 문의

안녕하세요.
W5500 을 이용해서 보드를 개발중입니다.

정상적으로 PING과 커넥트까지 성공했습니다만 몇번 loopback 정상동작 이후에 계속해서 소켓 연결이 끊어집니다.

SOCKET ERROR : -5
0:Listen, port [5000]
SOCKET ERROR : -5
0:Listen, port [5000]
SOCKET ERROR : -5
0:Listen, port [5000]
SOCKET ERROR : -5
0:Listen, port [5000]
SOCKET ERROR : -5
0:Listen, port [5000]
SOCKET ERROR : -5
0:Listen, port [5000]
SOCKET ERROR : -5

…반복

이런식으로 계속해서 발생하는데요. SOCKET ERROR: -5 가 socket.h 에 보니 Invalid socket mode for socket operation.
라는 주석이 있던데 소켓 모드라는게 뭐 따로 설정해줘야 하는건가요?

안녕하세요.

사용하신 예제 코드와 구현하신 코드를 첨부해주시면 좀 더 정확한 답변이 가능할 것 같습니다.

보통 소켓 생성을 할 때 보통은 아래와 같이 구현합니다.

socket(uint8_t sn, uint8_t protocol, uint16_t port, uint8_t flag) → socket(소켓 번호, TCP/UDP인지, 해당 port, 0)

마지막 flag는 소켓 생성시 옵션기능을 사용하기 위한 용도이지만 보통 사용하지는 않습니다.

이렇게 생성하시면 보통은 정상동작하는 것을 볼 수 있는데,

말씀하신 에러의 상황의 경우에는 코드를 확인해보아야 할 것 같습니다.

혹시, W5500을 사용해서 보드를 따로 구성하신건가요??? 모듈을 사용하신건가요??

위 질문도 답변 부탁드립니다.

감사합니다.

[quote=“Edward”]안녕하세요.

사용하신 예제 코드와 구현하신 코드를 첨부해주시면 좀 더 정확한 답변이 가능할 것 같습니다.

보통 소켓 생성을 할 때 보통은 아래와 같이 구현합니다.

socket(uint8_t sn, uint8_t protocol, uint16_t port, uint8_t flag) → socket(소켓 번호, TCP/UDP인지, 해당 port, 0)

마지막 flag는 소켓 생성시 옵션기능을 사용하기 위한 용도이지만 보통 사용하지는 않습니다.

이렇게 생성하시면 보통은 정상동작하는 것을 볼 수 있는데,

말씀하신 에러의 상황의 경우에는 코드를 확인해보아야 할 것 같습니다.

혹시, W5500을 사용해서 보드를 따로 구성하신건가요??? 모듈을 사용하신건가요??

위 질문도 답변 부탁드립니다.

감사합니다.[/quote]

  • 소스 코드는
    dropbox.com/s/avbq40ohhur2e … t.zip?dl=0
    이거구요.
    loopback 만 구현한 상태입니다.

  • W5500 칩만 사용해서 따로 만든 테스트 보드입니다 (모듈 사용한거 아닙니다)

  • 소켓이 정상적으로 연결 될때도 있고 계속 해서 에러 뜰때도 있고 동작이 일정하지가 않네요.

도움 부탁드립니다.

안녕하세요.

코드상으로는 큰 문제가 없어보이네요.

제작하신 회로도나 PCB를 확인할 수 있을까요??

PHY부분이 정상적으로 연결이 안될 가능성도 있습니다.

감사합니다.

W5500 부근 회로입니다. ( dropbox.com/s/tjcwoxz00eihr … n.pdf?dl=0 )

SPI 통신은 정상적으로 동작하는걸 확인하였습니다.

정상 연결 되고 정상적으로 Loopback이 동작하다가 어느순간 아래와 같은 에러를 계속해서 발생하며
소켓이 끊어집니다.

SOCKET ERROR : -3
0:LBTStart
SOCKET ERROR : -3
0:LBTStart
SOCKET ERROR : -3
0:LBTStart
SOCKET ERROR : -3
0:LBTStart
SOCKET ERROR : -3
0:LBTStart
SOCKET ERROR : -3
0:LBtart

반복

RSVD pin 에 10K옴 저항을 다니 정상동작하네요.

도움 주셔서 감사합니다 :slight_smile:

해결되셨다니 다행입니다.

감사합니다.