iOS 開發 網路程式設計詳解之Socket詳解

2021-07-24 23:35:47 字數 2302 閱讀 2435

注意 :

socket使用步驟

1.建立客戶端socket.

2.連線到伺服器socket.

3.客戶端socket傳送資料到伺服器socket.

4.客戶端socket接收伺服器返回的資料.

5.關閉客戶端socket.

#import

"viewcontroller.h"

#import

#import

#import

@inte***ce viewcontroller ()

@end

@implementation viewcontroller

- (void)viewdidload

// 2.客戶端socket連線到伺服器socket

/** 引數

引數1 : 客戶端socket

引數2 : 指向資料結構sockaddr的指標,其中包括目的埠和ip位址

伺服器的"結構體"位址

引數3 : 結構體資料長度

返回值0 成功/其他 錯誤代號,(不是非0即真)

*/struct sockaddr_in addr;

addr.sin_family = af_inet;

addr.sin_port = htons(80);

addr.sin_addr.s_addr = inet_addr("119.75.217.109");

int isconnected = connect(clientsocket, (const struct sockaddr *)&addr, sizeof(addr));

if (isconnected == 0)

// 3.客戶端socket向伺服器socket傳送請求

/** 引數

引數1 : 客戶端socket

引數2 : 傳送內容位址 void * == id

引數3 : 傳送內容長度

引數4 : 傳送方式標誌,一般為0

返回值如果成功,則返回傳送的位元組數,失敗則返回socket_error

nslog(@"傳送字元數 %ld",sendcount);

// 4.客戶端socket接收伺服器socket傳送的資料(響應)

/** 引數

引數1 : 客戶端socket

引數2 : 接收內容緩衝區位址

引數3 : 接收內容快取區長度

引數4 : 接收方式,0表示阻塞,必須等待伺服器返回資料

返回值如果成功,則返回讀入的位元組數,失敗則返回socket_error

提示 : 伺服器傳送給客戶端資料時,是一點一點傳送的

提示 : 當伺服器把資料都傳送完了以後,再次傳送時,只傳送0位元組,

*/// 建立接收伺服器傳送的資料的容器 / 緩衝區 ,並且指定了容量

uint8_t buffer[1024];

// 需要建立乙個容器

nsmutabledata *datam = [nsmutabledata data];

// 迴圈的接收伺服器傳送的資料

ssize_t recvcount = -1;

while (recvcount != 0)

nsstring *html = [[nsstring alloc] initwithdata:datam encoding:nsutf8stringencoding];

nslog(@"%@",html);

// 5.關閉socket

close(clientsocket);

}@end

socket / tcp

socket連線與tcp連線

socket連線與http連線

參考:http與socket連線區別

iOS 開發 網路程式設計詳解之TCP UDP

ip位址 主機名 0.1 主機名 localhost 每台計算機都有乙個 127.0 0.1 如果 127.0 0.1 ping 不通,說明網絡卡不工作 如果本機位址 ping 不通,說明網線壞了 埠號用於標示程序的邏輯位址,不同程序的標示 有效埠 0 65535 其中 0 1024由系統使用或者保...

iOS 開發 網路程式設計詳解之基本網路通訊過程

http協議規定 乙個完整的由客戶端發給伺服器的 http 請求 需要包含以下內容 get http 1.1get 後面的 表示訪問根目錄 客戶端要訪問的伺服器主機位址 中還可以包含以下資訊,告訴伺服器一些額外的資訊 訪問結束後,是否斷開連線 connection keep alive 是否快取資料...

IOS開發網路篇 網路程式設計基礎

ios開發網路篇 網路程式設計基礎 一 為什麼要學習網路程式設計 1.簡單說明 在移動網際網路時代,移動應用的特徵有 2 只有通過網路跟外界進行資料互動 資料更新,應用才能保持新鮮 活力 3 如果沒有了網路,也就缺少了資料變化,無論外觀多麼華麗,終將變成一潭死水 流動網路應用 良好的ui 良好的使用...