GCDAsyncUdpSocket无法绑定iOS模拟器上的端口

时间:2013-05-30 14:11:53

标签: ios udp gcdasyncsocket

我正致力于通过UDP发送消息。但是,我一直陷入“绑定端口”的问题。

当我第一次在iOS模拟器上构建项目时,没有什么奇怪的事情发生。一切都很好。

但是当我第二次建造这个项目时。当应用程序尝试绑定端口时,我收到来自终端的错误消息。

消息如下所示“Error Domain = NSPOSIXErrorDomain Code = 48”地址已在使用“UserInfo = 0x767c830 {NSLocalizedFailureReason = bind()函数中的错误,NSLocalizedDescription =地址已在使用中}”

让我感到困惑的是,当我在iPad上运行我的应用程序时,没有出现错误。

我想也许是因为我没有关闭套接字。但为什么它在iPad上正确运行?

希望有人能解决这个问题。 THX!

1 个答案:

答案 0 :(得分:3)

GDAAsyncUdpSocket的当前头部(也)没有(也)设置SO_REUSEPORT(它只是做ADDRESS,这对于TCP而言已经足够了)。

我刚刚快速修复了一下:

https://github.com/dirkx/CocoaAsyncSocket/commit/5ec8c83d59ecb754824f706198eb62e29961c1be

https://github.com/dirkx/CocoaAsyncSocket

它也应该在上游修复:

https://github.com/robbiehanson/CocoaAsyncSocket/pull/159

谢谢,

DW传递。