2013-05-20 2 views
0

비슷한 질문을 찾으려고했지만이 질문을 어떻게 발음해야할지 모르겠다. 연결로컬로 소켓 연결을 해제하려면 어떻게해야합니까?

내 서버 코드는

server_Listener = new TcpListener(7778); 
server_Listener.Start(); 


while (true) 
{UserSocket user = new UserSocket(); 

    try 
    { 
     user.client = server_Listener.AcceptSocket(); 

    } 
    catch 
    { 
     break; 
    } 

    if (user.client.Connected) 
    { 

     user.server_isClientOnline = true; 
     this.BeginInvoke((MethodInvoker)(delegate() 
     { 
      textBox1.AppendText("client connected\n"); 

     })); 


     user.server_netStream = new NetworkStream(user.client); 

UserSocket 클래스는 소켓 (변수 이름 클라이언트)가 ...이며, NetStream을 (server_netStream)를 받아 클라이언트에서 패킷 데이터를 전송받을 수 있습니다.

내 질문에,이 로컬 연결에서 잘 작동하지만 비 로컬로 작동하지 않습니다.

내 노트북을 사용하여이 서버에 액세스하려고했지만 내 친구가 있지만 그 중 일부는 작동하지 않았습니다.

오류는 아니지만 ... 연결을 수신하지 못했습니다.

내 코드가 잘못 되었습니까? 또는 로컬로 연결되지 않는 새로운 방법이 있습니까?

+0

'로컬이 아닌'이란 '인터넷을 통해'또는 동일한 도메인/작업 그룹 내의 다른 컴퓨터를 의미합니까? –

+0

네트워크의 다른 컴퓨터가 응용 프로그램에 액세스 할 수 있도록 서버의 방화벽에 포트를 열어 보셨습니까? –

+0

이 메시지가 표시됩니까? http://stackoverflow.com/questions/8195421/connecting-sockets-over-internet-network-fails?rq=1 – Alyafey

답변

0

방화벽이나 컴퓨터의 다른 문제 일 수 있습니다. Wireshark (http://www.wireshark.org/을 시도해보고 그런 식으로 정보를 수집 할 수 있는지 확인하십시오.

+0

고맙습니다 ..! 내 질문에도 댓글을 달았습니다. 나는 그 링크를보고 라우터를 사용하고 방화벽을 전혀 수정하지 않았다는 것을 깨달았습니다. 포트 포워딩이 무엇인지 알지 못합니다. (하지만 쉬운 방법은 알고 있지만) 더 많은 테스트를 할 것입니다. – March3

+0

포트 포워딩은 특정 IP 및 포트 조합을 대상으로 라우터 또는 방화벽으로 들어오는 패킷이 있고 라우터 또는 방화벽이 패킷을 내부 네트워크의 다른 IP 및 포트로 전달하는 경우입니다. – heartlandcoder

+0

이 문제에 대해 여전히 문제가 있습니다. 내 서버 프로그램은 포트 7778 ~ 7780을 수신 대기합니다. 포트 포워딩은 라우터의 구성에 따라 제공되며 가상 IP (기본값은 구성 메뉴에 액세스하는 컴퓨터)의 외부 포트에 대한 내부 포트를 설정할 수 있습니다. 나는 포트 7778 ~ 7780을 외부 포트 7778 ~ 7780에 설치했지만 전혀 작동하지 않는 것 같습니다. 포트 포 딩의 개념을 아직 이해하지 못하고 있습니까? – March3

관련 문제