#define ECONNRESET 131 /* Connection reset by peer */

jee89의 이미지

통신중에

read 할때, 에러메시지가

Connection reset by peer

라고 나왔습니다.

이경우는 어떤 경우인가요?

ssehoony의 이미지

그건 상대방이 끊었다는 의미 이므로 어케 할 수 있는게 아닙니다.
롤백 해야 할 게 있다면 롤백 하는 정도만 처리하시면 될 듯 하네요.

최종호의 이미지

connection reset이 이름 때문에 사람들을 혼란스럽게 하는데,
connection reset은 상대방이 연결을 끊은 것이 아니라
해당 port를 listen하고 있는 녀석이 없을 때 발생합니다.
즉, 서버가 안 떠 있으면 발생하는 것이죠.
이런 경우가 발생하면 침착하게 전화를 하시면 되죠. :P

상대방이 연결을 끊은 경우에는 FIN이 발생하고,
유닉스 계열에서는 read가 0을 리턴합니다.

kslee80의 이미지

상대방 쪽에서 해당 포트에 listen 하는 녀석이 없는 경우에는
Connection refused 가 발생합니다.
(connect 콜 호출시에 발생하죠)

Connection reset 은 listen 하는 녀석이 있어서 서로 연결된 상태에서
양쪽 중 한쪽에서 연결을 끊었을때(close) 발생합니다.
(read 콜에서 발생하죠)

OP 분의 상황을 봤을때는 connect 이후의 read 콜 호출 상황인것 같고,
이 경우에 발생하는 Connection reset 은 상대방 측에서 소켓을 close 했다고
해석하면 될 듯 싶습니다.

최종호의 이미지

최종호 wrote:
connection reset이 이름 때문에 사람들을 혼란스럽게 하는데,

제가 혼란스러웠었네요. connection refused와 헷갈렸었습니다.
:oops: