用了asyncUdpSocket, 服务端在接收到广播后,就会做出回应,然后就可以开始通讯了。
- (void)init{
AsyncUdpSocket *socket=[[AsyncUdpSocketalloc]initWithDelegate:self];
[socketlocalPort:16747];
NSTimeInterval timeout=5000;
NSString *[email protected]"quick_stat";
NSData *data=[NSDatadataWithData:[request dataUsingEncoding:NSASCIIStringEncoding] ];
UInt16 port=8081;
NSError *error;
[socket enableBroadcast:YESerror:&error];
[socket sendData :data toHost:@"255.255.255.255" port:port withTimeout:timeout tag:1];
[socket receiveWithTimeout:-1tag:0];
NSLog(@"begin scan");
}
- (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port{
NSString* result;
result = [[NSStringalloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"%@",result);
NSLog(@"received");
}
-(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didNotReceiveDataWithTag:(long)tag dueToError:(NSError *)error{
NSLog(@"not received");
}
-(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didNotSendDataWithTag:(long)tag dueToError:(NSError *)error{
NSLog(@"%@",error);
NSLog(@"not send");
}
-(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didSendDataWithTag:(long)tag{
NSLog(@"send");
}
-(BOOL)onUdpSocketDidClose:(AsyncUdpSocket *)sock{
NSLog(@"closed");
}
版权声明:本文为博主原创文章,未经博主允许不得转载。