0

我正在制作一个 UDP 应用程序,我可以在其中接收来自 udp 客户端的消息并将结果发送回 udp 客户端......但现在我想根据请求设置 udp 服务器响应......就像例如,如果 udp 客户端向服务器发送“Hello”消息,那么服务器会做出相应的反应,如果客户端发送“world”,那么服务器也会做出相应的反应......简而言之,我的问题是我无法读出字符串我在服务器站点接收.....这是 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”整数处收到的字符串,通过它我可以相应地设置响应..请告诉我我该怎么做...

4

1 回答 1

0

看到这个 链接也许它可以帮助,你的代码接缝是正确的,但如果它不起作用,请尝试更改编码

要将数据与字符串进行比较,您首先需要使用这行代码将其转换为字符串

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"}
于 2012-07-04T15:48:40.983 回答