【问题标题】:C# UDP Socket doesn't receive data until after data is sentC# UDP Socket 在发送数据之前不接收数据
【发布时间】:2011-02-24 23:11:06
【问题描述】:

我在使用 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(...);

【问题讨论】:

  • 你能改写一下吗?你怎么能期望收到尚未发送的东西?
  • 我的意思是,在应该进行接收的计算机将一些数据发送到其他计算机之前,我无法从网络上的其他计算机接收数据。

标签: c# sockets udp


【解决方案1】:

没关系,固定

故事的寓意是 --- 始终检查防火墙是否启用...

【讨论】:

    猜你喜欢
    • 2013-01-17
    • 2013-11-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多