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  }

原文地址:https://www.cnblogs.com/liuzhi20101016/p/9888451.html