在iPhone上侦听CocoaASyncSocket接收连接,但新套接字不调用委托

时间:2010-11-19 23:05:17

标签: iphone ipad asyncsocket

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

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

正确调用didAcceptNewSocket委托,并应将新套接字返回到连接IP:端口。然而,据我所知,它正在执行此操作,然后新套接字应该调用didConnectToHost,据我所知,它不是。{/ p>

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

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

什么可以让我的新套接字在听取方面不叫这个代表?

1 个答案:

答案 0 :(得分:1)

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

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