http Socket長串連

來源:互聯網
上載者:User

標籤:操作   blank   傳輸   syn   das   區別   單元   地址   ror   

文檔:http://www.cocoachina.com/ios/20160602/16572.html

 

 

 

socket(通訊端)是通訊的基石,是支援TCP/IP協議的網路通訊的基本操作單元,包含進行網路通訊必須的五種資訊:串連使用的協議,本地主機的IP地址,本地進程的協議連接埠,遠地主機的IP地址,遠地進程的協議連接埠。

多個TCP串連或多個應用程式進程可能需要通過同一個TCP協議連接埠傳輸資料。為了區別不同的應用程式進程和串連,電腦作業系統為應用程式與TCP/IP協議互動提供了通訊端(Socket)介面。應用程式層可以和傳輸層通過Socket介面,區分來自不同應用程式進程或網路連接的通訊,實現資料轉送的並發服務。

建立Socket串連至少需要一對通訊端,其中一個運行於用戶端,稱為ClientSocket,另一個運行於伺服器端,稱為ServerSocket。通訊端之間的串連過程分為三個步驟:伺服器監聽,用戶端請求,串連確認。

Socket可以支援不同的傳輸層協議(TCP或UDP),當使用TCP協議進行串連時,該Socket串連就是一個TCP串連,UDP串連同理。

使用第三方架構:CocoaAsyncSocket

不會寫伺服器,用Tomcat進行測試,只能測試到串連成功以及中斷連線,而且真機環境下,可能因為網路環境原因也同樣訪問不了:

注意:讀寫資料時需要手動進行。

//-1表示沒有time限制
    [self.socket writeData:[NSData data] withTimeout:-1 tag:0];
    [self.socket readDataWithTimeout:-1 tag:0];

- (IBAction)SocketConnection:(UIButton *)sender {    //http://localhost:8080/    NSString *host = @"10.1.1.33";    int port = 8080;        _socket = [[GCDAsyncSocket alloc]initWithDelegate:self delegateQueue:dispatch_get_main_queue()];    NSError *error = nil;    //[_socket connectToHost:host onPort:port error:&error ];    [_socket connectToHost:host onPort:port withTimeout:15000000 error:&error];    if (error) {        NSLog(@"%@",error);    }}-(void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port{    NSLog(@"%s,%@",__func__,@"串連成功");}-(void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err{    if (err) {        NSLog(@"異常斷開-%@",err);    }else{        NSLog(@"正常斷開");    }}-(void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag{    NSLog(@"寫資料");}-(void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{    NSLog(@"讀資料");}

 

http Socket長串連

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.