为什么我的UDP不能跨网段发送???
在同一个网段中,程序发送数据是正常的,但是当服务端软件放置到另一个网段中后,客户端向其发送数据始终收不到?
环境:我当前的客户端用在我自己的电脑上,服务端放置在公司公网服务器上,我本机能PING通该服务器的IP地址
请大家帮我分析分析,万分感谢!
代码如下:
服务端:
客户端
环境:我当前的客户端用在我自己的电脑上,服务端放置在公司公网服务器上,我本机能PING通该服务器的IP地址
请大家帮我分析分析,万分感谢!
代码如下:
服务端:
class Program
{
static void Main(string[] args)
{
Server server = new Server();
server.Start();
}
}
public class Server
{
private UdpClient server;
private Thread serverThread;
private IPEndPoint remotePoint;
public Server()
{
remotePoint = new IPEndPoint(IPAddress.Any, 0);
serverThread = new Thread(new ThreadStart(Run));
}
public void Start()
{
try
{
server = new UdpClient(22800);
serverThread.Start();
}
catch (Exception exp)
{
throw exp;
}
}
private void Run()
{
while (true)
{
byte[] msgBuffer = server.Receive(ref remotePoint);//不管客户端怎么发送,服务端始终在这里阻塞,说明一直没数据
//代码省略
}
}
}
客户端
class Program
{
static void Main(string[] args)
{
Client client = new Client("服务端IP");//
client.ConnectToServer();
}
}
public class Client
{
private UdpClient client;
private IPEndPoint hostPoint;
public Client(string serverIP)
{
hostPoint = new IPEndPoint(IPAddress.Parse(serverIP), 22800);
client = new UdpClient();
}
public void ConnectToServer()
{
// 发送消息到服务器
client.Send(数据信息, 数据长度, hostPoint);
}
}
...全文
相关推荐
SOCKET之UDP跨网段广播返回服务端主机名和所有IP
"此资源是一个C++程序,用于实现UDP跨网段广播,目的是获取服务端的主机名和所有IP地址。程序中包含了必要的Winsock库,并定义了常量和服务端端口号。"在TCP/IP网络通信中,SOCKET
UDP 跨网段通信的实现方式
UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输协议,它可以用于实现跨网段的通信。在本文中,我们将介绍如何使用 UDP 实现跨网段通信,并提供相应的源代码示例。通过创建 UDP 服务器端和客户端,绑定地址和端口,发送和接收消息,我们可以实现跨网段的通信。在实际应用中,你可以根据具体需求进行灵活的扩展和优化。完成安装后,分别运行服务器端和客户端的代码。在运行代码之前,请确保你已经安装了 Python 的 socket 模块。请注意,在上述代码中,服务器端绑定的地址为。
IP-MAC Scanner 局域网IP-MAC扫描器 跨网段VLAN
ARP扫描主要依赖于网络设备的ARP缓存,快速获取IP和MAC的映射;而UDP扫描则通过发送UDP数据包并监听响应来确定设备的活跃状态。
STM32CubeIDE H743 + DP83848 + LWIP-UDP服务器跨网段传输数据
总结起来,这个项目涉及到了STM32微控制器的网络编程,特别是利用LWIP协议栈实现跨网段的UDP通信,这对于物联网、远程控制等领域有着广泛的应用。
STM32F107-lwip-UDP-client发送数据
总结来说,STM32F107通过LWIP实现UDP客户端发送数据涉及了微控制器的网络配置、LWIP的初始化、UDP套接字的创建与绑定、数据发送函数的调用等多个步骤。


