소켓 프로그래밍 도중 Connection reset by peer

puaxx의 이미지

어떤 사이트에 소켓으로 연결할라고 했는데요.

connect 에서 -1이 리턴되네요...errno를 대조해 보니 connection reset by peer라고 명시되어 있습니다...

브라우저는 잘만 연결 되던데...어째서 제 소켓 프로그램은 connect에서 저런 현상이? --;;

알려 주세요..

setsockopt를 참고해 보라고 하는데 무신 말인지 당췌...알수가 없네요.

익명 사용자의 이미지

브라우저는 한번 커넥션을 맺고...어쩌구저쩌구 후에 바로 커넥션을 종료합니다.

그런 테스트를 원하신다면 telnet ip port 로 해서 테스트 하시면 될껍니다.

익명 사용자의 이미지

그런 경우는 대부분 해당 사이트의 해당 포트에 아무것도 떠있지 않다는 것을 의미합니다.

닫힌 포트에 SYN를 날리면 TCP 는 RST 를 돌려주죠. (방화벽 개입이 없다는 전제하에)

익명 사용자의 이미지

Connection reset by peer 메시지는 peer쪽에 포트는 떠 있는 경우입니다.
포트는 떠 있는데
peer쪽에서 먼저 커넥션을 close 한 경우인거 같은데요

만약 peer쪽 호스트에 해당 포트가 열려있지 않다면
Connection Refused라는 메시지가 뜰 거 같습니다.

질문하신분이 어떻게 커넥션을 맺으려고 시도했는지..
정말로 connect()에서 에러난것인지 (제 생각엔 connect 후에 read/write 호출시 에러일듯 한데요)..
소스코드를 보여주셔야 알수 있을듯..