1. 程式人生 > >iOS-基於TCP連線<Scoket-客戶端>

iOS-基於TCP連線<Scoket-客戶端>

一:前言(本文為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]; }