iOS-基于TCP连接Scoket-服务端
生活随笔
收集整理的這篇文章主要介紹了
iOS-基于TCP连接Scoket-服务端
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一:前言(本文為T(mén)CP服務(wù)端)
TCP首先要服務(wù)器開(kāi)放一個(gè)端口 然后客戶端去連接服務(wù)端的IP地址和端口號(hào) 連接成功之后再進(jìn)行數(shù)據(jù)傳輸 要經(jīng)歷三次握手
二:代碼在GitHub
1.需要的工具類 自行下載
2.部分代碼及其截圖
<1>創(chuàng)建TCP服務(wù)端Socket
1 self.serverSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()]; 1 //開(kāi)始監(jiān)聽(tīng)(開(kāi)放哪一個(gè)端口) 2 NSError *error = nil; 3 BOOL result = [self.serverSocket acceptOnPort:[@"8000" integerValue] error:&error]; 4 5 if (result) { 6 7 //開(kāi)放成功 8 NSLog(@"開(kāi)放成功"); 9 10 }else{ 11 12 //開(kāi)放失敗 13 NSLog(@"開(kāi)放失敗"); 14 }<2>發(fā)送數(shù)據(jù)
1 [self.clientSocket writeData:data withTimeout:-1 tag:0];<3>代理
1 #pragma mark socketdelegate 2 //監(jiān)聽(tīng)到客戶端socket鏈接 3 //當(dāng)客戶端鏈接成功后,生成一個(gè)新的客戶端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 //成功讀取客戶端發(fā)過(guò)來(lái)的消息 18 - (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{ NSString *message = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 19 NSLog(@"成功讀取客戶端發(fā)過(guò)來(lái)的消息 = %@",message); 20 [self.clientSocket readDataWithTimeout:-1 tag:0]; 21 22 } 23 24 - (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag{ 25 NSLog(@"消息發(fā)送成功"); 26 27 }轉(zhuǎn)載于:https://www.cnblogs.com/liuzhi20101016/p/9888451.html
總結(jié)
以上是生活随笔為你收集整理的iOS-基于TCP连接Scoket-服务端的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 测试报告分析
- 下一篇: springside 4 web-ini