3

我正在尝试通过指定 IP 来实现两个设备之间的基本消息传递。当一个设备告诉它的监听套接字监听如下:

UInt16 port = 59647;
NSError *err = nil;
[socket acceptOnPort:port error:&err];

didAcceptNewSocket委托被正确调用,并且应该向连接的 IP:Port 返回一个新的套接字。然而,据我所知,新套接字应该正在调用didConnectToHost,据我所知,它不是。

didConnectToHost正确实现,因为启动与其套接字的连接的设备在连接建立后正确调用它。

didAcceptNewSocket除了一些并将旧的侦听套接字设置为新的之外,我没有做任何事情NSLogs(因为之后不需要它,并且在之前将其分配给不同的变量并没有改变任何东西,也不应该改变任何东西)。

什么可以让我在监听端的新套接字不调用这个委托?

4

1 回答 1

1

由于您正在处理客户端和服务器,因此重要的是要意识到只有客户端会调用socket:didConnectToHost:port:委托方法,因为它是连接到主机的客户端(而不是相反)。

在服务器上,socket:didAcceptNewSocket:以侦听套接字作为第一个参数调用委托方法。

于 2013-04-11T09:54:22.347 回答