【问题标题】:Cannot received UDP packet on Iphone w/ AsyncUdpSocket无法使用/ AsyncUdp Socket 在 Iphone 上接收 UDP 数据包
【发布时间】: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;
}

【问题讨论】:

  • 还是不行!!! :(
  • 还有一件事,上面的方法是在主线程调用的吗?
  • 不,它在我的视图控制器中调用我的发送数据

标签: iphone asynchronous udp packet


【解决方案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 吗?
  • 是的,它是一个标签,但现在一切正常,问题是我从不打开套接字
猜你喜欢
  • 2018-04-20
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多