zoukankan      html  css  js  c++  java
  • iOS-基于TCP连接<Scoket-服务端>

    一:前言(本文为TCP服务端)

    TCP首先要服务器开放一个端口 然后客户端去连接服务端的IP地址和端口号 连接成功之后再进行数据传输 要经历三次握手

    二:代码在GitHub

    1.需要的工具类 自行下载

    2.部分代码及其截图

    <1>创建TCP服务端Socket

    1     self.serverSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
     1 //开始监听(开放哪一个端口) 
     2 NSError *error = nil; 
     3 BOOL result = [self.serverSocket acceptOnPort:[@"8000" integerValue] error:&error];
     4 
     5  if (result) { 
     6 
     7 //开放成功
     8  NSLog(@"开放成功");
     9 
    10  }else{ 
    11 
    12 //开放失败
    13  NSLog(@"开放失败");
    14  }

    <2>发送数据

    1  [self.clientSocket writeData:data withTimeout:-1 tag:0];

    <3>代理

     1 #pragma mark socketdelegate
     2  //监听到客户端socket链接
     3  //当客户端链接成功后,生成一个新的客户端socket
     4 
     5  - (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket{ 
     6 
     7 NSLog(@"连接成功"); 
     8 //connectedHost:地址IP 
     9 //connectedPort:端口 
    10 NSLog(@"%@",[NSString stringWithFormat:@"链接地址:%@",newSocket.connectedHost]); 
    11 
    12 //保存客户端socket 
    13 self.clientSocket = newSocket;
    14  [self.clientSocket readDataWithTimeout:-1 tag:0]; 
    15 } 
    16 
    17 //成功读取客户端发过来的消息
    18  - (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{ NSString *message = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    19 NSLog(@"成功读取客户端发过来的消息 = %@",message);
    20  [self.clientSocket readDataWithTimeout:-1 tag:0]; 
    21 
    22 } 
    23 
    24 - (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag{ 
    25 NSLog(@"消息发送成功");
    26 
    27  }

  • 相关阅读:
    神经网络——BP算法
    汉诺塔
    Clucene系列3--Clucene的代码组织结构
    Clucene系列2--Clucene专业术语
    j
    TF-IDF的定义及计算
    Python编程 从入门到实践 练习5-10 检查用户名
    判断输入的正整数是否为素数
    百钱百鸡问题
    打印由 * 号组成的菱形
  • 原文地址:https://www.cnblogs.com/liuzhi20101016/p/9888451.html
Copyright © 2011-2022 走看看