发送和接收UDP数据包
以下代码在端口15000上发送数据包:
int port = 15000; UdpClient udp = new UdpClient(); //udp.EnableBroadcast = true; //This was suggested in a now deleted answer IPEndPoint groupEP = new IPEndPoint(IPAddress.Broadcast, port); string str4 = "I want to receive this!"; byte[] sendBytes4 = Encoding.ASCII.GetBytes(str4); udp.Send(sendBytes4, sendBytes4.Length, groupEP); udp.Close();
但是,如果我不能在另一台计算机上接收它,它就没用了。 我所需要的只是将命令发送到局域网上的另一台计算机,并让它接收它并做一些事情。
不使用Pcap库,有什么办法可以实现这个目标吗? 我的程序正在与之通信的计算机是Windows XP 32位,而发送计算机是Windows 7 64位,如果它有所作为。 我已经研究了各种net send
命令,但我无法弄明白。
我也可以访问计算机(XP one)的本地IP,因为它可以在其上物理输入’ipconfig’。
编辑:这是我正在使用的接收function,从某处复制:
public void ReceiveBroadcast(int port) { Debug.WriteLine("Trying to receive..."); UdpClient client = null; try { client = new UdpClient(port); } catch (Exception ex) { Debug.WriteLine(ex.Message); } IPEndPoint server = new IPEndPoint(IPAddress.Broadcast, port); byte[] packet = client.Receive(ref server); Debug.WriteLine(Encoding.ASCII.GetString(packet)); }
我正在调用ReceiveBroadcast(15000)
但根本没有输出。
以下是发送/接收UDP数据包的服务器和客户端的simple
版本
服务器
IPEndPoint ServerEndPoint= new IPEndPoint(IPAddress.Any,9050); Socket WinSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); WinSocket.Bind(ServerEndPoint); Console.Write("Waiting for client"); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0) EndPoint Remote = (EndPoint)(sender); int recv = WinSocket.ReceiveFrom(data, ref Remote); Console.WriteLine("Message received from {0}:", Remote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv));
客户
IPEndPoint RemoteEndPoint= new IPEndPoint( IPAddress.Parse("ServerHostName"), 9050); Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); string welcome = "Hello, are you there?"; data = Encoding.ASCII.GetBytes(welcome); server.SendTo(data, data.Length, SocketFlags.None, RemoteEndPoint);
在MSDN上实际上有一个非常好的UDP服务器和监听器示例 : 简单UDP示例
上述就是C#学习教程:发送和接收UDP数据包分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1022882.html