내 테스트에서 클라이언트가 부스트 소켓에서 읽으려고 할 때 가끔 오류가 발생합니다.
기존 연결이 원격 호스트에 의해 강제로 닫혔습니다.
몇 가지 질문이 있습니다.
1)이 메시지와 관련된 Boost 오류 코드는 무엇입니까?
2) Linux 시스템에서 아날로그는 무엇입니까? 동일한 오류 코드를 잡을 수 있습니까?
3) 서버 로그에 성공적인 연결이 표시되지 않습니다. 그러나 클라이언트는 연결 시도에서 성공적으로 반환됩니다. 또한 boost::asio::write()
성공하지만 여기서도 서버는 아무것도 수신하지 않습니다. 그러나 소켓에서 읽으려고 할 때 (전송 후) 위의 오류 메시지가 나타납니다.
무슨 일이야?
귀하의 질문에 대한 답변 :
1) boost
오류 코드는 다음과 같습니다 boost::asio::error::connection_reset
. 참조하십시오 boost/system/error_code.hpp
.
2) 리눅스 시스템의 아날로그는 다음과 같습니다 ECONNRESET
. 참조하십시오 errno.h
.
3) connection_reset
는 TCP 소켓의 연결을 끊을 수있는 여러 방법 중 하나입니다 . 부스트 TCP 소켓 연결이 끊길 때 감지하는 방법을 참조하십시오 .
무슨 일이 벌어지고 있는지 정확하게 결정하기 위해, 나는 클라이언트와 서버 간의 TCP 메시지를 관찰하기 @user
위해 Wireshark 를 설치하고 사용할 것을 권장 합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다