With Asyncudpsocket, the server responds when it receives the broadcast, and then it can begin to communicate.
-(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:d ata 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");
}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
iOS developed to send UDP broadcasts and receive data