一:前言(本文為UDP客戶端)
UDP客戶端直接可以根據(jù)服務(wù)端的IP地址和端口號(hào)去發(fā)送數(shù)據(jù) 服務(wù)端收到數(shù)據(jù)之后會(huì)得到這個(gè)客戶端的IP地址和端口號(hào) 根據(jù)這個(gè)IP地址和端口號(hào)服務(wù)端才能知道給哪個(gè)客戶端發(fā)送消息
二:代碼在GitHub
1.部分代碼及其截圖
<1>創(chuàng)建UDP-Scoket
udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()] ;
[udpSocket bindToPort:8000 error:nil];
NSError *error = nil;
[udpSocket enableBroadcast:YES error:&error];//允許廣播 必須 否則后面無法發(fā)送組播和廣播
[udpSocket joinMulticastGroup:@"224.0.0.1" error:nil];
[udpSocket beginReceiving:nil];//必須要 開始準(zhǔn)備接收數(shù)據(jù)
<2>向服務(wù)端發(fā)送數(shù)據(jù)
//給服務(wù)端發(fā)送消息
[udpSocket sendData:[@"1" dataUsingEncoding:NSUTF8StringEncoding] toHost:@"224.0.0.1" port:8099 withTimeout:-1 tag:0];
<3>UDP代理
//UDP 回調(diào)函數(shù)
- (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data fromAddress:(NSData *)address withFilterContext:(id)filterContext {
//接收客戶端消息
NSLog(@"ReceiveData = %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}