2012-03-29 1 views
2

저는 지난 달 멀티 플레이어 게임을 작성하는 데 썼습니다. IPEndPoint로 127.0.01 : 9051을 사용하여 하나의 시스템에서만 테스트했습니다.인터넷 IP 주소를 사용하여 로컬 컴퓨터 IP 주소에 연결할 수 없습니다.

IP 주소를 WAN IP로 변경하고, 라우터에서 포트 포워딩을 구성하고, 소프트웨어 방화벽을 구성했습니다. 그러나 연결하지 않습니다.

this site을 사용하여 포트가 열려 있는지 확인했습니다. 결과 : 포트가 실제로 열려 있습니다.

또한 웹 사이트에서 포트를 확인할 때 내 서버는 패킷을 정상적으로 수신합니다. 그러나, 내가 내 컴퓨터에서 연결할 때 ... 아무것도받지 못합니다.

내 코드에 문제가 없는지 확인하기 위해 기본 사항까지 모두 다했습니다.

이 기본 코드는 작동하지 않습니다

IPEndPoint iep = new IPEndPoint(IPAddress.Parse("XXX.XXX.XXX.XXX"), 9051); 
TcpClient client = new TcpClient(); 
client.Connect(iep); 

어떤 아이디어가 많이 감사합니다.

답변

3

전달 된 (IP 외부) IP에 동일한 시스템 (내부 IP)으로 연결하려고하면 작동하지 않습니다. 소수의 기업 방화벽없이 소비자 장치 (내가 아는)가 있습니다 그 길 밖으로 내부에서 패킷 의지와 다시 번역

[인터넷] -. outsideIP [라우터/방화벽] insideIP1 - insideIP2는 [컴퓨터이 경우

insideIP (X)에서 패킷 outsideIP 연결할 수 없습니다.

+0

그래서 기본적으로 127.0.0.1을 사용하여 연결하는 별도의 클라이언트를 만들어야합니다. –

+0

@Jeff - 또는 설정 파일에 끝점 주소를 넣을 수 있습니다. –

+0

@Jeff 예, 하나 이상의 컴퓨터에서 실행중인 두 개의 앱이 필요합니다. –

0

포트 9051에서 WAN IP로 텔넷 할 수 있는지 확인하십시오. 라우터는 네트워크 자체에서 WAN IP에 연결할 때 실제로 포트레이트를 좋아하지 않습니다.

+0

내게 핑 === –

+0

핑도 TCP가 아닙니다. Ping은 ICMP (포트 개념이 없음)입니다. –

+0

k telnet이 현재 활성화되어 있지 않습니다. 다른 컴퓨터에서 연결하여 작동하는지 확인하려고합니다. 모든 도움을 주셔서 감사합니다 –

0

외부 세계에서 Dyndns 또는 다른 서비스를 사용하여 서버에 연결하고 호스트 파일에 동일한 이름을 넣어 127.0.0.1로 내부적으로 연결할 수 있습니다.

+0

제안 해 주셔서 감사합니다. –

0

동일한 엔드 포인트 ip/port를 사용하여 클라이언트와 서버 (모두 실패한 테스트의 동일한 시스템)가 있습니까? 포트는 한 번에 한 번만 바인딩 할 수 있습니다. server out을 위해 하나의 서버에 2 개의 포트를 사용하십시오. 그런 식으로 그들은 충돌하지 않을 것입니다. 텔넷을 사용하여 사용중인 IP/포트에 연결할 수 있는지 확인하고 Netstat을 사용하여 아직 사용 중이 아닌지 확인하십시오.

관련 문제