无法使用/ AsyncUdp Socket 在 Iphone 上接收 UDP 数据包
Posted
技术标签:
【中文标题】无法使用/ AsyncUdp Socket 在 Iphone 上接收 UDP 数据包【英文标题】:Cannot received UDP packet on Iphone w/ AsyncUdpSocket 【发布时间】:2013-05-03 19:18:29 【问题描述】:大家好,我正在学校做一个项目,我遇到了一个问题,我可以将 UDP 数据包发送到不同的地址,但我无法读取发送到我的 iPhone 的 UDP 数据包,在收到我想要的 UDP 数据包后数据出现在标签中,我做错了什么,但我不知道是什么.....我的代码:
- (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port
NSLog(@"Incoming data");
[sock receiveWithTimeout:1 tag:0];
NSString *receiveddata = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
// NSString *receiveddata = data ;
self.testudp.text = receiveddata;
return YES;
【问题讨论】:
请查看本帖***.com/q/4215149/2315974 还是不行!!! :( 还有一件事,上面的方法是在主线程调用的吗? 不,它在我的视图控制器中调用我的发送数据 【参考方案1】:这就是我所做的更改:
AsyncUdpSocket *udpsocket;
udpsocket = [[AsyncUdpSocket alloc] initWithDelegate:self];
[udpsocket enableBroadcast:YES error:nil];
[udpsocket bindToPort:1234 error:nil];
[udpsocket receiveWithTimeout:-1 tag:0];
- (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port
NSLog(@"received data");
NSString *receiveddata = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
_testudp.text = receiveddata;
【讨论】:
_testudp 不是 UILabel 吗? 是的,它是一个标签,但现在一切正常,问题是我从不打开套接字以上是关于无法使用/ AsyncUdp Socket 在 Iphone 上接收 UDP 数据包的主要内容,如果未能解决你的问题,请参考以下文章