gpt4 book ai didi

iphone - 连接广播而不是服务器后AsyncUdpSocket接收数据的小问题

转载 作者:行者123 更新时间:2023-12-03 18:35:37 24 4
gpt4 key购买 nike

我的 AsyncUdpSocket 遇到问题。

我曾经连接到服务器,发送一些数据并获得一些响应。现在,由于我不知道服务器的实际地址,我不得不更改代码并将数据发送到广播地址 255.255.255.255。

这是我的代码:

NSString *bchost = @"255.255.255.255";
NSString *host = @"10.1.0.1";
int udpPort = 6001;

AsyncUdpSocket *udpSocket = [[AsyncUdpSocket alloc] initWithDelegate:self];
[udpSocket bindToPort:udpPort error:nil];
[udpSocket enableBroadcast:YES error:nil];
NSError *error = nil;
if ([udpSocket connectToHost:bchost onPort:udpPort error:&error])
{
[udpSocket receiveWithTimeout:10 tag:0];
[self sendToUDPServer:@"HELLO"];
}

所以,问题是它适用于“host”,但不适用于“bchost”。在这两种情况下,我在服务器端看到数据已收到,并且答案已发送到发送者的地址(应该是 iOS 设备),但在设备上,当我将数据发送到 bchost 时,我没有收到数据。

知道我缺少什么吗?

最佳答案

好吧,不幸的是所有回复都不适合我,但我终于找到了解决方案;)

NSString *bcHost = @"255.255.255.255";
NSString *anyHost = @"0.0.0.0";

int UDP_SOCKET_PORT = 6001;
int DISCOVERY_PORT = 6003;

udpSocket = [[AsyncUdpSocket alloc] initWithDelegate:self];
[udpSocket bindToAddress:anyHost port:DISCOVERY_PORT error:nil];
[udpSocket enableBroadcast:YES error:nil];
[udpSocket receiveWithTimeout:10 tag:0];
[udpSocket sendData:[@"Hello" dataUsingEncoding:NSASCIIStringEncoding] toHost:bcHost port:UDP_SOCKET_PORT withTimeout:-1 tag:0];

如果它后面有服务器,它将触发响应,这也将允许从服务器获取 IP 以便进一步处理。

关于iphone - 连接广播而不是服务器后AsyncUdpSocket接收数据的小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5790149/

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