当前位置:编程学习 > C#/ASP.NET >>

c#udp的问题

--------------------编程问答-------------------- 任意IP --------------------编程问答-------------------- 其实写为代码
IPEndPoint RemoteIpEndPoint = null;

这就可以。画蛇添足创建一个对象反而让你迷惑了。

在执行Receive时,它重新建立了一个 IPEndPoint 对象并赋值给 RemoteIpEndPoint 变量。这个新的对象包含远程客户端的信息,后边就打印了Address和Port。 --------------------编程问答-------------------- 在通信时,服务端收到的客户端信息和你自认为的是不一致的。例如客户端有不止一个网卡(包括用软件虚拟的)、在NAT路由器后边,使用系统随机分配的端口号发送信息,等等。

服务器端socket可以从消息中获得客户端“对外”的地址和端口号。

在NAT路由器上,客户端地址和端口号都被路由器替换为它自己分配的值。例如客户端使用udp方式发送一个信息给服务器,服务器立刻按照所接收到的客户端地址和端口号再反方向发送信息,这就能够从公网向局域网内部“打洞”,服务器需要把这个地址和端口号记录下来,以后就可以主动向局域网内发送消息。 --------------------编程问答--------------------
引用 2 楼 sp1234 的回复:
其实写为代码C# code
IPEndPoint RemoteIpEndPoint = null;


这就可以。画蛇添足创建一个对象反而让你迷惑了。

在执行Receive时,它重新建立了一个 IPEndPoint 对象并赋值给 RemoteIpEndPoint 变量。这个新的对象包含远程客户端的信息,后边就打印了Address和Port。


它是否会告诉udpserver 只接受指定范围的包呢? --------------------编程问答-------------------- sp1234大哥,谢谢你了,学习了 --------------------编程问答-------------------- sp1234 理解的好深刻 受教了 --------------------编程问答-------------------- 答非所问
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,