2012-06-02 8 views
0

우선 내 영어에 대해 아프다. 내 문제는 내가 프레스 기계에 전자 회로를 가지고있다. 이 회로는 문제없이 내 서버로 데이터를 전송합니다. 데이터를받은 후에는 명령을 보내야합니다. LAN에서는 매력처럼 작동합니다. 그러나 lan 회로에서 어떻게 든 내 명령을받지 못한다. NAT 뒤에있는 컴퓨터에 udp로 보낼 수있는 아이디어가 있습니까? 내 코드는 울부 짖습니다. 도움을 청합니다.NAT 뒤에 기계에 Udp 패킷

private void ReceiveMessage() 
     { 
      while (true) 
      { 
       try 
       { 
        var remoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0); 
        var content = _udpClient.Receive(ref remoteIpEndPoint); 
        if (content.Length > 0) 
        { 
         var message = Encoding.ASCII.GetString(content); 
         var smsg = message.Split('|'); 
         var pin1 = int.Parse(smsg[13]); 
         var pin2 = int.Parse(smsg[14]); 

         var isChanged = CheckChanges(smsg[1]); 
         if (isChanged == 1) 
         { 

          **var recvpt = new IPEndPoint(remoteIpEndPoint.Address, remoteIpEndPoint.Port); 
          var client = new UdpClient(); 
          var cmd1 = "CP1S" + _pin1Time + "F"; 
          var cmd2 = "CP2S" + _pin2Time + "F"; 
          var senddata1 = Encoding.UTF8.GetBytes(cmd1); 
          var senddata2 = Encoding.UTF8.GetBytes(cmd2); 
          client.Send(senddata1, senddata1.Length, recvpt); 
          client.Send(senddata2, senddata2.Length, recvpt); 
          client.Close();** 
          // UpdateChanges(smsg[1]); 
         } 
       } 
       catch (Exception ex) 
       { 

        MessageBox.Show(ex.ToStrin<wbr ></wbr>g()); 
       } 
      } 
     } 
} 

답변

1

NAT 라우터 뒤에있는 컴퓨터는 원격 네트워크에서 직접 액세스 할 수 없습니다. 이 트래픽을 원격 시스템에 라우팅하려면 방화벽/라우터에서 규칙을 적용해야합니다. 명확한 지시 사항은 WAN/LAN 관리자에게 문의하십시오. 가지고 계시지 않으시면 Server Fault에 네트워크에 대한 자세한 정보를 문의하십시오.