allowMultipleBindToSamePort

allowMultipleBindToSamePort

我正在Xamarin的iOS / Android解决方案中尝试使用SocketLite.PCL
但是我在运行时收到消息Allow Multiple Bind To Same Port only allowed on Windows

这是什么意思,我该如何解决?

编辑:
我正在使用的示例代码可以在以下位置找到:https://github.com/1iveowl/SocketLite.PCL

我将以下代码放入应用程序的rotected async override void OnStart(){}中:

var udpReceived = new UdpSocketReceiver();
await udpReceived.StartListeningAsync(4992, allowMultipleBindToSamePort: true);

var udpMessageSubscriber = udpReceived.ObservableMessages.Subscribe(
    msg =>
    {
        System.Console.WriteLine($"Remote adrres: {msg.RemoteAddress}");
        System.Console.WriteLine($"Remote port: {msg.RemotePort}");

        var str = System.Text.Encoding.UTF8.GetString(msg.ByteData);
        System.Console.WriteLine($"Messsage: {str}");
    },
    ex =>
    {
    // Exceptions received here
    }
);


编辑2:

好的,因此将allowMultipleBindToSamePort设置为false可以停止该错误。

现在,我收到错误Address already in use

但是,我仍然对allowMultipleBindToSamePort的用途感到好奇。

最佳答案

如您在new documentation中看到的:


  重要说明:请注意,参数allowMultipleBindToSamePort仅在Windows上有效。在其他平台上,应将其设置为false


关于然而,我仍然对allowMultipleBindToSamePort的用途感到好奇。

关于this post的解释很好,您可以在以下的stackoverflow post中阅读更多内容

08-16 20:16