iOS-基於TCP連線<Scoket-客戶端>
阿新 • • 發佈:2018-11-01
一:前言(本文為TCP客戶端)
TCP首先要伺服器開放一個埠 然後客戶端去連線服務端的IP地址和埠號 連線成功之後再進行資料傳輸 要經歷三次握手
二:程式碼在GitHub
1.需要的工具類 自行下載
2.部分程式碼及其截圖
<1>建立TCP-Scoket
//1.建立客戶端scoket
self.clientSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
1//2.連結伺服器 2 socket BOOL result = [self.clientSocket connectToHost:@"172.20.10.1" onPort:[@"8000" integerValue] error:nil]; 3 //判斷連結 4 if (result) { 5 //成功 6 NSLog(@"連結成功"); 7 }else{ 8 //失敗 9 NSLog(@"連結失敗"); 10 }
<2>傳送資料
[self.clientSocket writeData:data withTimeout:-1 tag:0];
<3>代理
#pragma mark ------------ //客戶端連結伺服器成功
- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port{
NSLog(@"%@",[NSString stringWithFormat:@"連結成功伺服器:%@",host]);
[self.clientSocket readDataWithTimeout:-1 tag:0];
}
- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long )tag{
NSLog(@"訊息傳送成功");
}
//成功讀取服務端發過來的訊息
- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{
NSLog(@"%lu",(unsigned long)[data length]);
[self.clientSocket readDataWithTimeout:-1 tag:0];
}