UDP 通信时的,关于连接的问题。
初始化:
- C# code
UdpClient udp = new UdpClient(5000);
下面是连接设备代码:
- C# code
ip: 远程设备的地址: 192.168.7.100 port 远程: 3000 public byte[] DeviceComunicationTest(string ip,int Port, byte[] Cmd, int len) { udp.Connect(ip, Port); udp.Send(Cmd, len); byte[] receive = new byte[256]; return UdpReceiveData(ip, port);// 接受设备返回数据 }
接受返回数据:
- C# code
public byte[] UdpReceiveData(string ip,int LocalPort) { ipadr = new IPEndPoint(IPAddress.Parse(ip), LocalPort); return udp.Receive(ref ipadr); }
按钮动作;
- C# code
byte[] receive = new byte[256]; receive = DeviceComunicationTest(xx,xx,xx); // 处理 receive返回来的数据
上面代码是正常的
现在我不想,每次每次发送命令时,都做一次连接动作,于是将
- C# code
udp.Connect(ip, Port);
这句代码,放到了form_load()里
这样问题就来了,,,
- C# code
public byte[] UdpReceiveData(string ip,int LocalPort) { ipadr = new IPEndPoint(IPAddress.Parse(ip), LocalPort); return udp.Receive(ref ipadr); //代码死在上面这句上了 }
难道每次,发送命令都要连接一次? 在另个个帖子里,有大侠说不要每次连接
但是直接屏蔽掉 udp.connect(ip,port) 这句也不行
如何整才能不要每次都 connect()?
谢谢
[解决办法]
发现搞硬件都开始学c#了。
msdn有例子。搬过来就可以用。不用费心自己写。msdn介绍的相当详细。
[解决办法]
没发现代码问题啊。。。。。。。。。
[解决办法]
UDP是无连接的。那个顶多算配置目标信息
[解决办法]
[解决办法]
封装一下吧