(실제 코드는 여기서는별로 중요하지 않으므로이 질문에 코드를 넣지 않았습니다. 그렇다면이 코드는 나중에 편집 할 수 있습니다.)Winsock2 non-local refused
저는 winsock2 또는 다른 네트워킹 API를 처음 사용했습니다. 서버가 클라이언트에 문자열을 보낸 다음 연결을 끊는 매우 간단한 서버 응용 프로그램과 클라이언트 응용 프로그램이 있습니다. 나는 inet_addr()
인수로 localhost
또는 127.0.0.1
를 사용할 때
응용 프로그램은 잘 작동하지만 내 "진짜"IP를 사용하는 경우, 클라이언트 응용 프로그램은 WSAECONNREFUSED
를 얻고 서버는 표시되지 않습니다. 포트가 두 응용 프로그램에서 동일하고 프로토콜도 동일하다는 것을 확인했습니다.
[편집] 잠시 동안 네트워킹을 포기한 후에이 문제로 돌아 왔습니다. 이게 실제로 라우터에서 사용하고 있다는 사실과 뭔가 관련이있을 수 있다고 생각합니다.
호스트 중 하나 또는 모두에서 네트워크 분석기 (tcpdump, wireshark 등)를 사용하면 문제의 근본 원인을 알 수 있습니다. –
예'htons()'를 사용했고, 서버가 작동하는 동안 내 IP를 사용했습니다. 서버가 제대로 작동하는지 확인하기 위해'localhost'와'127.0.0.1'를 사용하여 검사했습니다. 나는 방화벽에 규칙을 추가하여 해당 포트에서 항상 허용 및 금지 (그리고 규칙을 맨 위로 이동)했지만 처음에는 방화벽의 기능을 사용한 적이 처음 이었기 때문에 내가 그랬는지 잘 모르겠습니다. 그것 올바르게. – rsethc
또한 포트는 로컬 주소로 시도하고 내 '실제'IP를 사용하는 사이에 클라이언트 또는 서버의 포트에 대해 아무 것도 변경하지 않았으므로 전혀 중요하지 않습니다. – rsethc