2013-05-03 44 views
0

嗨,我正在一個項目在學校工作,我有問題,我能夠發送UDP數據包到不同的地址,但我無法讀取發送到我的iPhone的UDP數據包,接收UDP數據包後,我希望數據出現在標籤,即時通訊做錯了什麼,但我不知道是什麼.....我的代碼:無法在Iphone上收到UDP數據包w/AsyncUdpSocket

- (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; 
} 
+0

請檢查此主題http://stackoverflow.com/q/4215149/2315974 – danypata 2013-05-03 21:20:11

+0

仍然無法正常工作! :( – 2013-05-15 13:48:46

+0

還有一件事,是上述方法在主線程上調用? – danypata 2013-05-15 14:00:19

回答

0

這就是我所做的更改:

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; 
+0

_testudp不是UILabel嗎? – danypata 2013-05-16 15:42:02

+0

是它的一個標籤,但現在每件事情都有效,是我永遠不會打開插座 – 2013-05-21 16:43:43