[-]
tcpipudp
socket
使用socket
**示例
延伸閱讀
tcp/ip(transmission control protocol/internet protocol)即傳輸控制協議/網間協議,是乙個工業標準的協議集,它是為廣域網(wans)設計的。
udp(user data protocol,使用者資料報協議)是與tcp相對應的協議。它是屬於tcp/ip協議族中的一種。
下面這張圖,表明了這些協議的關係,如圖tcp/ip協議族包括運輸層、網路層、鏈路層:
在圖1中,我們沒有看到socket的影子,那麼它到底在**呢?還是用圖來說話,一目了然。
socket是應用層與tcp/ip協議族通訊的中間軟體抽象層,它是一組介面。在設計模式中,socket其實就是乙個門面模式,它把複雜的tcp/ip協議族隱藏在socket介面後面,對使用者來說,一組簡單的介面就是全部,讓socket去組織資料,以符合指定的協議。
前人已經給我們做了好多的事了,網路間的通訊也就簡單了許多,但畢竟還是有挺多工作要做的。以前聽到socket程式設計,覺得它是比較高深的程式設計知識,但是只要弄清socket程式設計的工作原理,神秘的面紗也就揭開了。
乙個生活中的場景。你要打**給乙個朋友,先撥號,朋友聽到**鈴聲後提起**,這時你和你的朋友就建立起了連線,就可以講話了。等交流結束,結束通話**結束此次交談。生活中的場景就解釋了這工作原理,也許tcp/ip協議族就是誕生於生活中,這也不一定。
#import "viewcontroller.h"
#import
#import
#import
@inte***ce viewcontroller ()
// 客戶端 socket
@property (nonatomic, assign) int clientsocket;
@property (nonatomic, weak) iboutlet uiwebview *mywebview;
@end
@implementation viewcontroller
/*******== 請求頭 *****==
1> 請求行
get 表示從伺服器"拿"資料
/ 訪問伺服器的根目錄
http/1.1 http的協議以及版本
2> 請求頭
host: 要訪問的主機
user-agent: 使用者**,告訴伺服器客戶端的型別
accept: 告訴伺服器客戶端支援的資料格式
accept-language: 告訴伺服器客戶端支援的語言
accept-encoding: 告訴伺服器客戶端支援的解壓縮型別
http請求本身的格式,是字串格式的,最末一行,以 \n\n 結束,表示所有請求的內容傳送完畢,伺服器可以處理!
**********響應 **********=
1> 狀態行
http/1.1 http的協議以及版本
200 狀態碼(404)
2xx 成功
4xx 客戶端錯誤
5xx 伺服器錯誤
2> 響應頭,伺服器告訴客戶端的一些資訊
date: 響應日期
server: 伺服器的資訊
// 檔案長度
content-length: 24
3> 資料實體,從伺服器返回的二進位制資料!
println("hello world!");
*/- (void)viewdidload
// 傳送訊息給 web 伺服器
// 建立請求字串
// 對結果的處理
nsstring *result = [self sendandrecv:request];
// 找 \r\n 的出現的位置
nsrange range = [result rangeofstring:@"\r\n\r\n"];
// 判斷是否找到
if (range.location == nsnotfound)
nsstring *html = [result substringfromindex:range.location];
[self.mywebview loadhtmlstring:html baseurl:[nsurl urlwithstring:@""]];
}- (bool)connecttohost:(nsstring *)host port:(int)port
/*** 傳送&接收訊息
*/- (nsstring *)sendandrecv:(nsstring *)msg
}return [[nsstring alloc] initwithdata:datam encoding:nsutf8stringencoding];
}/**
* 斷開連線
*/- (void)disconnect
@end
1.linux socket 程式設計:sqlite 使用介紹2. 網路程式設計學習筆記一:socket程式設計:
終端下sqlite的使用頂
1 踩
網路程式設計 Socket程式設計
一 網路部分 1.ip 2.埠號 在網路協議中使用埠號識別主機上不同的程序,不同的埠對應於不同的服務 應用程式 3.協議 tcp二 socket部門socket通訊基本流程圖 根據socket通訊基本流程圖,總結通訊的基本步驟 伺服器端 第一步 建立乙個用於監聽連線的socket對像 第二步 用指定...
socket網路程式設計
首先認識乙個表示主機資訊的結構體 struct hostent h addrtype 這是表示主機所使用的位址型別的定義,在c語言winsock2.h標頭檔案中以 af 開頭的巨集定義就是它的值。如果使用的是ipv4,則值為 af inet 如果是ipv6,值為 af inet4 h length ...
Socket網路程式設計
socket 網路程式設計 在c free中建立乙個對話方塊工程,取名socket1,建立如下檔案結構 main.h ifndef main h define main h include bool winapi main proc hwnd hwnd,uint umsg,wparam wparam...