UDP侦听,发送接收(简单,客户端和服务器在同一个应用程序上)

时间:2013-07-23 16:42:51

标签: sockets udp listen

好的,我想将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 i write,当前为127.0.0.1。

1 个答案:

答案 0 :(得分:0)

我解决了。

要在UDP中安装客户端和服务器非常简单,虽然有点危险,因为除非您测试它,否则您不确定它是否正常工作(UDP只是发送并且不关心关于其他事情。)

基本上这样做。

Client.Send(缓冲液,0,buffer.size,IPAdress,端口); byte [] rec = Client.Receive(ref IPAdress);

要接收你必须将它绑定到IP,所以你可以绑定它来听任何ipadress, 然而,端口需要设置(我认为),你想要这样做,因为听取所有内容,这不是一个好主意。

因此,参考IP地址将是侦听IP和端口。

因此设置非常简单。如果你愿意,你可以使用相同的UDPClient进行接收和发送,尽管分开2个可能更好。