gpt4 book ai didi

iphone - 在 iPhone 上监听 Co​​coaASyncSocket 接收连接,但新套接字不调用委托(delegate)

转载 作者:行者123 更新时间:2023-12-03 20:09:55 27 4
gpt4 key购买 nike

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

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

didAcceptNewSocket 委托(delegate)被正确调用,并且应该返回一个新的套接字到连接 IP:Port。然而,据我所知,它正在执行此操作,然后新套接字应该调用 didConnectToHost,但据我所知,它不是。

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

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

什么可以使监听端的新套接字不调用此委托(delegate)?

最佳答案

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

在服务器上,使用监听套接字作为第一个参数来调用 socket:didAcceptNewSocket: 委托(delegate)方法。

关于iphone - 在 iPhone 上监听 Co​​coaASyncSocket 接收连接,但新套接字不调用委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com