• GCDAsyncSocket~


    第三方的一个socket通信框架,原生的一般用的人比较少,优秀第三方可以提升开发效率,减少开发中出现错误的几率

    下面的代码是实例化一个socket对象,并为其指定代理,指定代理方法运行的队列

    _socket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];

    下面的代码是指定一个主机名,一个端口号,进行链接

    [_socket connectToHost:hostName onPort:port error:&error];

    连接成功之后就可以进行socket通信了

    为当前的控制器指定GCDAsyncSocket代理协议,并实现

    - (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port

    - (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag

    - (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag

    见其名知其意,其实代理方法有很多,只不过这三个比较常用而已

    一般在didWriteDataWithTag会调用一次[_socket readDataWithTimeout:-1 tag:tag];方法去读取数据(注意,didWrite是完成时,已经将数据写给了服务器)

    而且根据tag值我们还可以判断出是哪一个或者哪一类发送的数据对应的返回数据

    还有一个需要注意的地方就是,如果接收到数据后要刷新View,你需要看一下你接收到数据那个方法所在的是不是主线程,如果不是主线程需要进行切换,只有在主线程里才能更新UI

  • 相关阅读:
    GAN 的推导、证明与实现。
    WGAN学习笔记
    常用损失函数积累
    交叉熵在loss函数中使用的理解
    贝叶斯决策
    极大似然估计
    gated pixelCNN。
    三叉搜索树 转载
    Rabin-Karp 字符串匹配算法
    面试题整理 转载
  • 原文地址:https://www.cnblogs.com/xyzaijing/p/3971728.html
Copyright © 2020-2023  润新知