将 udp 数据包发送到 nat 后面的计算机
本文关键字:计算机 nat udp 数据包 | 更新日期: 2023-09-27 18:36:03
首先对我的英语感到不满。我的问题是我在压力机上有电子电路。此电路将数据发送到我的服务器没有问题。收到数据后,我需要向电路发送命令。 在局域网中,它的工作就像一个魅力。但是在局域网电路之外,不要以某种方式接收我的命令。知道我如何将 udp 发送到 NAT 后面的机器吗?我的代码是波纹管,TY 寻求任何帮助。
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());
}
}
}
}
NAT 路由器后面的计算机不能从远程网络直接访问。需要在防火墙/路由器上设置规则才能将此流量路由到远程计算机。有关明确说明,请咨询您的 WAN/LAN 管理员。如果您没有,可以尝试在服务器故障上询问有关您的网络的更多信息。