iOS didAcceptNewSocket 期望不同的端口号
Posted
技术标签:
【中文标题】iOS didAcceptNewSocket 期望不同的端口号【英文标题】:iOS didAcceptNewSocket expected different port number 【发布时间】:2013-10-28 12:04:20 【问题描述】:我正在使用 AsyncSocket 并侦听特定端口。我正确地获得了一个带有新套接字的 didAcceptNewSocket 委托回调。当我为新套接字调用本地时,它与我的监听套接字具有相同的端口号。我期待一个不同的端口。
- (void)createListenSocket
NSError *error;
listenSocket = [[AsyncSocket alloc] initWithDelegate:self];
[listenSocket acceptOnPort:MY_PORT_NUMBER error:&error];
和
- (void)onSocket:(AsyncSocket *)sock didAcceptNewSocket:(AsyncSocket *)newSocket
NSLog(@"new connected socket: local port: %d, connected port: %d",
[newSocket localPort], [newSocket connectedPort]);
这将打印本地端口的 MY_PORT_NUMBER 值。 为什么?
【问题讨论】:
我现在开始怀疑让两个套接字都使用相同的端口号是否有效。我假设一个套接字总是有一个唯一的端口号。这种想法对吗? 【参考方案1】:连接由两个 IP 地址和两个端口号定义。如果该集合是唯一的,则它是一个不同的连接,因此将两个远程设备连接到相同的本地 IP 地址和端口号是完全有效的,前提是远程号码是唯一的。
【讨论】:
以上是关于iOS didAcceptNewSocket 期望不同的端口号的主要内容,如果未能解决你的问题,请参考以下文章