udp服务器根据从udp客户端收到的请求进行响应

时间:2012-07-04 15:25:58

标签: c#

我正在创建一个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”整数中收到的字符串,通过它我可以相应地设置响应...请告诉我我该怎么做...

1 个答案:

答案 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"}