, 나는 다른 라우터에서 서버에 연결을 시도하는 이상한 예외가 발생했습니다 연결 호스트가 응답하지 않아 확립 된 연결이 실패했습니다. "이상한 C#은 SocketException이
클라이언트는 로컬 네트워크에서 서버에 완벽하게 연결할 수 있지만 인터넷을 통해 연결하면 작동하지 않습니다.
포트 1250 (사용중인 포트)을 전달하고 SimplePortForwarding (http://www.simpleportforwarding.com/)을 사용하여 포트가 열려 있고 작동하는지 확인했습니다. 무엇이 잘못되었는지 http://www.developerfusion.com/article/3918/socket-programming-in-c-part-1/
어떤 생각 :
나는이 튜토리얼에 내 구현을 기반으로? 감사합니다.public String connect(String ipAddress, int port)
{
lock(_locker)
{
if (!_connecting)
{
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ipAddress), port);
try
{
_socket.Connect(endpoint);
_connected = true;
waitForData();
_eventManager.queueEvent(new PlayerJoinedEvent(PlayerJoinedEvent.PLAYER_JOINED, name));
} catch (SocketException e)
{
// Exception is thrown HERE
return e.Message;
}
}
}
return "";
}
그냥 예외적 인 예외를 일반적으로 연결 시간 초과라고합니다. –
죄송합니다, 어제 모든 소켓 프로그래밍을 한 적이 처음입니다. – user434565
어떤 IPAddress에 연결하고 있습니까? 로컬 LAN의 IP 주소는 일반적으로 인터넷 IP 주소와 다릅니다. LAN 및 인터넷 모두에 대해 동일한 IP 주소를 사용하면 설정 한 IP 주소의 유형에 따라 그 중 하나만 작동합니다. –