socket通讯实例 (objective-c)
2012-10-09 17:23
369 查看
objective-c下,cocatouch框架把原生的socket做了进一步的封装,也就是stream.
添加CFNetwork框架
初始化套接字
添加CFNetwork框架
初始化套接字
CFReadStreamRef readStream; CFWriteStreamRef writeStream; CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"127.0.0.1", 7777, &readStream, &writeStream); inputStream = ( NSInputStream *)readStream; outputStream = ( NSOutputStream *)writeStream; [inputStream setDelegate:self]; [outputStream setDelegate:self]; [inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [inputStream open]; [outputStream open];消息处理
- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent { NSLog(@"stream event %i", streamEvent); NSLog(@"%@",theStream); switch (streamEvent) { case NSStreamEventOpenCompleted: NSLog(@"Stream opened"); break; case NSStreamEventHasBytesAvailable: if (theStream == inputStream) { uint8_t buffer[1024]; int len; while ([inputStream hasBytesAvailable]) { len = [inputStream read:buffer maxLength:sizeof(buffer)]; if (len > 0) { NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding]; if (nil != output) { NSLog(@"server said: %@", output); [self messageReceived:output]; } } } } break; case NSStreamEventErrorOccurred: NSLog(@"Can not connect to the host!"); break; case NSStreamEventEndEncountered: [theStream close]; [theStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; [theStream release]; theStream = nil; break; default: NSLog(@"Unknown event"); } }
相关文章推荐
- 在windows下用C语言写socket通讯实例
- 在windows下用C语言写socket通讯实例
- node.js和socket.io纯js实现的即时通讯实例分享
- 使用C语言编写基于TCP协议的Socket通讯程序实例分享
- 运维人的Python有趣小程序,Socket通讯简单实例
- ServerSocket和ClientSocket控件通讯的实例
- Socket通讯实例-基本Socket
- Nodejs+Socket.io实现通讯实例代码
- 即时通讯下数据粘包、断包处理实例(基于CocoaAsyncSocket)
- Socket通讯简单实例
- 麻雀虽小,五脏俱全-C# 创建windows服务、socket通讯实例(学习)
- python socket多线程通讯实例分析(聊天室)
- Java 多线程ServerSocket通讯简单实例(基于TCP协议)
- C# 创建windows服务、socket通讯实例 (转载 )
- Qt5 TcpSocket 客户端/服务器 通讯实例
- python socket多线程通讯实例分析(聊天室)
- Socket通讯实例
- ServerSocket和Socket通讯实例
- 用socket通讯执行远程命令-linux实例
- node.js和socket.io纯js实现的即时通讯实例分享