zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    RestTemplate与Gzip压缩
    在浏览器中异步下载文件监听下载进度
    springBoot中的所有配置属性(中文)
    Springboot应用中设置Cookie的SameSite属性
    客户端解析服务器响应的multipart/form-data数据
    springboot + querydsl 入门到会用
    MyBatis通过TypeHandler自动编解码对象的Json属性
    @Transaction注解失效的几种场景
    Elasticsearch 7.x配置用户名密码访问 开启x-pack验证
    搭建Elasticsearch可视化界面 Kibana
  • 原文地址:https://www.cnblogs.com/zhongriqianqian/p/4146692.html
Copyright © 2011-2022 走看看