2010-02-23 5 views
0

소켓을 사용하여 프로젝트를 수행하고 있습니다. 사실 우리의 환경에서 실행됩니다. (LAN).소켓 프로그래밍이 NAT 네트워크에서 실패했습니다

내가 그들의 환경에서 NAT을 사용하여 클라이언트 측에서 그것을 실행하려고하면 내 프로그램이 실패 (즉) 내가 만든 클라이언트 프로그램을 통해 서버에 연결할 수 없습니다.

프로그램을 변경하는 방법은 무엇입니까? 내 문제를 해결하는 데 도움이 될 SocketOption라는 열거 형이 있습니까?

내가

언젠가을 검색 한 후이 질문에

+0

당신이 당신의 메시지의 레이아웃을 수정해야합니까? 어떻게 실패합니까 당신은 예외 또는 어떤 것을 얻습니까? – Peter

+3

클라이언트는 어디에 있으며 서버는 어디에 있습니까? NAT-ed 네트워크 내부에서 공용 인터넷의 서버로 연결하면 작동합니다. 명시 적 포트 포워딩이 설정되어 있지 않으면 NAT-ed 네트워크 내의 공용 인터넷에서 서버로 연결하면 안됩니다. BTW, 소켓 옵션은 이것과 아무 상관이 없다. –

+0

@ NikolaiNFetissov 나는 당신이 언급 한 것에 동의하지만 어떻게 야후와 스카이프 등이 그것을합니까? – Smith

답변

0

에 대한 현상금을 설치하고자하는 네트워크의 신도 컴퓨터에 신도 컴퓨터에서 전송하려면이 정보를 발견

NAT는 아니다 문법적으로 통제 할 수있는 무언가. (UPNP가 있지만 작동하는 것을 본 적이 없습니다.) NAT 뒤에있는 서버에 클라이언트를 연결해야하는 경우 포트 포워딩을 수행하기 위해 수동으로 NAT 장치 (라우터)를 구성해야합니다.

링크 : 그것은 하이의 메시지는 "코드"로두고 있기 보인다 P는 실패 http://blogs.msdn.com/ncl/archive/2009/07/27/end-to-end-connectivity-with-nat-traversal-.aspx

+0

이것은 오래된 게시물 일지 모르지만 소프트웨어 및 비디오 게임이 많은 경우 어떻게 활용할 수 있습니까? 임에 LAN에, 나는 LAN을 통해 서버/클라이언트 소프트웨어 작동 방법을 알고 싶다. – Shaun

관련 문제