【发布时间】:2011-04-26 12:16:23
【问题描述】:
我对 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"];
}
所以,问题在于它适用于“主机”,但不适用于“bchost”。在这两种情况下,我在服务器端都看到数据被接收,并且答案被发送到发送者的地址(应该是 iOS 设备),但是在设备上,当我将数据发送到 bchost 时,我没有得到数据。
知道我错过了什么吗?
【问题讨论】:
-
您是否尝试将广播绑定到与实际连接完全不同的端口?