0

好的,我想发送一个UDP数据包到一个IP,然后接收它。由于我无法让它工作,我不得不寻求帮助。

我希望它在 1 个应用程序上工作,这意味着客户端和服务器在同一个应用程序上。我目前在同一个应用程序上使用音频发送和接收(使用示例代码和东西)。

我无法理解的只是UDP,可能还有套接字。

这看起来很简单,但我无法让它工作。

所以如果我能得到一个非常简单的样本,比如:

“UDP 向 IPofchoice 发送“你好””

“UDP 从 IPofchoice 接收“数据”

Messagebox.show("解码(数据));

好吧,希望你明白我的意思。

编辑:

这是我的“示例”,它根本不起作用。

void VoiceChat_KeyPress(对象发送者,KeyPressEventArgs e)

void VoiceChat_KeyPress(object sender, KeyPressEventArgs e)
    {
        string text = "Hello";
        byte[] send_buffer = Encoding.ASCII.GetBytes(text);
        otherPartyIP = new IPEndPoint(IPAddress.Parse(txtCallToIP.Text), 1450);
        udpClientKey.Send(send_buffer, send_buffer.Length, "127.0.0.1", 1450);

        byte[] byteData = udpClientKey.Receive(ref otherPartyIP);
        MessageBox.Show(otherPartyIP.Address.ToString());

        MessageBox.Show(System.Text.Encoding.ASCII.GetString(byteData));
    }

其中 txtCallToIP.tex = 我写的 ip,目前是 127.0.0.1。

4

1 回答 1

0

这我解决了。

在 UDP 中拥有客户端和服务器非常容易,虽然有点危险,因为除非你测试它,否则你不确定它是否工作(UDP 只是发送而不关心其他任何事情)。

所以基本做到了。

Client.Send(buffer,0,buffer.size,IPAdress,Port); byte[] rec = Client.Receive(ref IPAdress);

要接收,您必须将其绑定到 IP,因此您可以将其绑定到侦听任何 ipadress,但是需要设置端口(我认为),并且您想要这样做,因为侦听所有内容,是不是一个好主意。

所以 ref IPAdress 将是监听 IP 和端口。

所以设置起来非常容易。如果需要,您可以使用相同的 UDPClient 进行接收和发送,尽管最好有 2 个单独的 .

于 2013-08-09T04:59:19.570 回答