现在的位置: 首页 > 综合 > 正文

CAsysncSocket 之–udp工具–AsyncUdpSocket 用法

2018年05月05日 ⁄ 综合 ⁄ 共 2145字 ⁄ 字号 评论关闭

详解iPhone 下AsyncSocket网络库编程是本文要介绍的内容,iphone的标准推荐CFNetwork C库编程.但是编程比较烦躁。在其它OS往往用类来封装的对Socket函数的处理。比如MFC的CAsysncSocket.在iphone也有类似于开源项目.cocoa AsyncSocket库

官方网站:http://code.google.com/p/cocoaasyncsocket/

这里只上例子,自己在项目中使用的,绝对能使用,如果有疑问,欢迎留言讨论。

将AsyncUdpSocket.h AsyncUdpSocket.m 导入到你的工程中,

在自己建立的util中,加入一下代码

  1. <pre name="code" class="cpp">#pragma mark udp  
  2. -(void)sendSearchBroadcast{  
  3.     NSString* bchost=@"255.255.255.255"//这里发送广播  
  4.     [self sendToUDPServer:@"hello udp" address:bchost port:BCPORT];  
  5. }  
  6. -(void)sendToUDPServer:(NSString*) msg address:(NSString*)address port:(int)port{  
  7.     AsyncUdpSocket *udpSocket=[[[AsyncUdpSocket alloc]initWithDelegate:self]autorelease]; //得到udp util  
  8.     NSLog(@"address:%@,port:%d,msg:%@",address,port,msg);  
  9.     //receiveWithTimeout is necessary or you won't receive anything  
  10.     [udpSocket receiveWithTimeout:10 tag:2]; //设置超时10秒  
  11.     [udpSocket enableBroadcast:YES error:nil]; //如果你发送广播,这里必须先enableBroadcast  
  12.     NSData *data=[msg dataUsingEncoding:NSUTF8StringEncoding];  
  13.     [udpSocket sendData:data toHost:address port:port withTimeout:10 tag:1]; //发送udp  
  14. }</pre><pre name="code" class="cpp">//下面是发送的相关回调函数  
  15. -(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port{  
  16.     NSString* rData= [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]  
  17.                      autorelease];  
  18.     NSLog(@"onUdpSocket:didReceiveData:---%@",rData);    
  19.     return YES;  
  20. }  
  21. -(void)onUdpSocket:(AsyncUdpSocket *)sock didNotSendDataWithTag:(long)tag dueToError:(NSError *)error{  
  22.     NSLog(@"didNotSendDataWithTag----");  
  23.       
  24. }  
  25. -(void)onUdpSocket:(AsyncUdpSocket *)sock didNotReceiveDataWithTag:(long)tag dueToError:(NSError *)error{  
  26.     NSLog(@"didNotReceiveDataWithTag----");  
  27. }  
  28. -(void)onUdpSocket:(AsyncUdpSocket *)sock didSendDataWithTag:(long)tag{  
  29.     NSLog(@"didSendDataWithTag----");  
  30. }  
  31. -(void)onUdpSocketDidClose:(AsyncUdpSocket *)sock{  
  32.     NSLog(@"onUdpSocketDidClose----");  
  33. }</pre><br><pre></pre>ok,试一下吧<p></p><p></p><pre></pre><pre></pre>  

转:http://blog.csdn.net/kafeidev/article/details/8465970

抱歉!评论已关闭.