2011-02-24 177 views
0

我有一个插座,我使用C#中的发送UDP数据---基本插座无法接收来自其他计算机的任何数据后麻烦直到通过套接字先发送了一些数据。C#UDP套接字不接收数据,直到数据发送

真的不知道为什么它的行为出现异常,我希望你们可以点我在正确的方向 - 代码示例如下。

感谢

- 丹

private Socket UDPSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 

IPAddress bindIP = BindingIP; 
      if (bindIP == IPAddress.None) 
       throw new Exception("Error binding to network interface \"" + _mcinter + "\" - interface not found"); 

      //recieve data from any source 
      IPEndPoint LocalHostIPEnd = new IPEndPoint(bindIP, Target_Port); 

      //init Socket properties: 
      UDPSocket.SetSocketOption(SocketOptionLevel.Udp, SocketOptionName.NoDelay, 1); 

      //allow for loopback testing 
      UDPSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); 

      //extremly important to bind the Socket before joining multicast groups 
      UDPSocket.Bind(LocalHostIPEnd); 

      //get in waiting mode for data - always (this doesn't halt code execution) 
      UDPSocket.BeginReceiveFrom(...); 
+0

你能改说吗?你怎么能期望收到一些尚未发送的东西? – 2011-02-24 23:37:17

+0

我的意思是,我不能接收来自网络上的其他计算机数据,直到应该做的接收电脑发送一些数据到其他计算机。 – debracey 2011-02-24 23:42:21

回答

1

没关系,固定

这个故事的寓意是---经常检查,以查看是否启用了防火墙......