注意 :
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 良好的使用...