【问题标题】:Listening CocoaASyncSocket on iPhone receiving connection but new socket does not call delegate在 iPhone 上侦听 CocoaASyncSocket 接收连接但新套接字不调用委托
【发布时间】:2010-11-19 23:05:16
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: iphone ipad asyncsocket


    【解决方案1】:

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

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

    【讨论】:

    • 我已经很久没有这样做了,但事后看来,这似乎是合理的推理。
    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 2016-11-19
    • 2021-08-17
    • 2021-12-16
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多