使用Udp连接接收数据报

时间:2009-04-04 19:04:17

标签: udpclient

为了通过UDP连接接收数据报,我创建了一个UDPClient类型的对象。

 receivedNotificationSock = new UdpClient();

然而,一旦完成并使用接收方法:

 receivedHostNameBuffer=receivedNotificationSock.Receive(ref receivedNotificationIP);

我得到一个例外,说我必须调用bind方法。 但是UDPClient类中没有绑定方法。 如果可能的话,你们可以告诉我应该采取什么措施来克服这个例外。

3 个答案:

答案 0 :(得分:1)

您需要了解更多有关套接字的信息。

所有套接字都有一个端口号。首先,你创建一个套接字 - 它本身几乎没用。它漂浮在那里。但是你绑定它 - 你给它分配一个端口号。 现在它很有用 - 现在您可以在其上发送和接收数据。

请记住,所有UDP通信都是由源的IP和端口的四元数据集以及目标的IP和端口定义的。新创建的套接字没有IP地址或端口;绑定为它提供IP地址和端口。

不幸的是,我不是C#程序员,所以我无法正确回答你的问题。但至少你知道为什么这很重要。

答案 1 :(得分:1)

将端口号传递给UDP客户端的构造函数。

 receivedNotificationSock = new UdpClient(21000);

您可能需要更改防火墙设置以允许绑定,但是当您在开发计算机上首次运行时,通常会打开一个弹出窗口。

答案 2 :(得分:0)

对于Socket编程,您需要知道在客户端和服务器端需要执行的系统调用序列。

如果您正在撰写客户

  1. 您打开一个socket来电的套接字。

  2. 然后通过connect电话

  3. 连接到服务器端口
  4. 连接成功后

  5. 然后您使用sendsendtowrite

  6. 将请求发送到服务器
  7. 会导致您接收到可以使用receiveread

  8. 阅读的数据

    在服务器端

    1. 您创建了socket

    2. bind它到port

    3. 使用listen开始在套接字上侦听来自各个客户端的传入连接。 有一种非阻塞的方式来监听连接以及select系统调用。

    4. 一旦建立连接,您基本上可以读取请求并开始处理它。

    5. 这是C#中可能对您有用的示例。

      http://www.developerfusion.com/article/3918/socket-programming-in-c-part-1/

相关问题