我正在创建一个UDP应用程序,我可以从udp客户端接收消息并将结果发送回udp客户端...但现在我想根据请求设置udp服务器响应。 ..例如,如果udp客户端向服务器发送“Hello”消息,那么服务器会相应地做出反应,如果客户端发送“世界”,那么服务器会相应地作出反应....总之我的问题是我无法读出我在服务器站点收到的字符串.....这是c#
中的窗口表单应用程序例如这里是代码:
int recv;
byte[] data = new byte[1024];
IPEndPoint endpoint = new IPEndPoint(IPAddress.Loopback, 1235);
Socket newsocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
newsocket.Bind(endpoint);
MessageBox.Show("waiting for a client..");
IPEndPoint sen = new IPEndPoint(IPAddress.Loopback, 5001);
EndPoint tmp = (EndPoint)sen;
recv = newsocket.ReceiveFrom(data, ref tmp);
MessageBox.Show(" message recieved", tmp.ToString());
MessageBox.Show(Encoding.ASCII.GetString(data, 0, recv));
现在我想读出我在“recv”整数中收到的字符串,通过它我可以相应地设置响应...请告诉我我该怎么做...
答案 0 :(得分:0)
看到这个 link也许它可以提供帮助,你的代码接缝很严格,但如果它不起作用,请尝试更改编码
要将数据与字符串进行比较,首先需要将其转换为具有此行代码的字符串
Encoding.ASCII.GetString(data, 0, recv)
像这样使用
recv = newsocket.ReceiveFrom(data, ref tmp);
string receiver = Encoding.ASCII.GetString(data, 0, recv);
if (receiver == "Hello"){"do something"}