Asyncsocket总结(未完)

方法总结

建立socket

- (id)initWithDelegate:(id)delegate

配置RunLoopModes(不必须)

  1. 允许你配置 socket 使用的运行循环模式
  2. 运行循环模式设置默认是NSRunLoopCommonModes
  3. 如果你想你的socket 在其他模式下继续操作,你可能需要添加模式 NSModalPanelRunLoopMode 或者 NSEventTrackingRunLoopMode ,或者你可能只想使用 NSRunLoopCommonModes
  4. 可接受的socket将自动 继承相同的运行循环模式就像侦听socket
  5. 注意:NSRunLoopCommonModes 定义在10.5,对于之前的版本可使用 kCFRunLoopCommonModes

- (BOOL)setRunLoopModes:(NSArray *)runLoopModes

- (BOOL)addRunLoopMode:(NSString *)runLoopMode

- (BOOL)removeRunLoopMode:(NSString *)runLoopMode

-(NSArray *)runLoopModes

服务端启动监听

- (BOOL)acceptOnPort:(UInt16)port error:(NSError **)errPtr

告诉socket开始听取和接受制定端口上的连接,当一个连接到来的时候,AsyncSocket实例将调用各种委托方法,socket将听取所有可用的接口(wifi,以太网等)

客户端连接服务端

1.连接给定的主机和端口,主机hostname可以是域名或者是Ip地址

-(BOOL)connectToHost:(NSString *)hostname onPort:(UInt16)port error :(NSError **)errPtr

2.连接到一个给定的地址

 -(BOOL)connectToAddress:(NSData *)remoteAddr error:(NSError *)errPtr;

制定一个sockaddr结构包裹住一个NSData对象,例如,NSData对象从NSNetService的地址方法返回,如果有一个现有的sockaddr结构,可以将它转换到一个NSData对象,像这样:

 struct sockaddr sa  -> NSData *dsa = [NSData dataWithBytes:&remoteAddr length:remoteAddr.sa_len];

 struct sockaddr *sa -> NSData *dsa = [NSData dataWithBytes:remoteAddr length:remoteAddr->sa_len];

代理总结

- (void)onSocket:(AsyncSocket *)sock didAcceptNewSocket:(AsyncSocket *)newSocket

- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port

- (void)onSocket:(AsyncSocket *)sock didWriteDataWithTag:(long)tag

- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag

- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err

- (void)onSocketDidDisconnect:(AsyncSocket *)sock

http://www.cnblogs.com/worldtraveler/archive/2012/12/22/2829067.html

原文地址:https://www.cnblogs.com/zhongriqianqian/p/4146692.html