ios socket使用大全

ios socket使用大全

ID:34507022

大小:311.24 KB

頁數(shù):20頁

時(shí)間:2019-03-07

ios socket使用大全_第1頁
ios socket使用大全_第2頁
ios socket使用大全_第3頁
ios socket使用大全_第4頁
ios socket使用大全_第5頁
資源描述:

《ios socket使用大全》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第一部分、概念的理解1、什么是Socket?Socket又稱之為“套接字”,是系統(tǒng)提供的用于網(wǎng)絡(luò)通信的方法。它的實(shí)質(zhì)并不是一種協(xié)議,沒有規(guī)定計(jì)算機(jī)應(yīng)當(dāng)怎么樣傳遞消息,只是給程序員提供了一個(gè)發(fā)送消息的接口,程序員使用這個(gè)接口提供的方法,發(fā)送與接收消息。Socket描述了一個(gè)IP、端口對(duì)。它簡(jiǎn)化了程序員的操作,知道對(duì)方的IP以及PORT就可以給對(duì)方發(fā)送消息,再由服務(wù)器端來處理發(fā)送的這些消息。所以,Socket一定包含了通信的雙發(fā),即客戶端(Client)與服務(wù)端(server)。2、Socket的通信過程?每

2、一個(gè)應(yīng)用或者說服務(wù),都有一個(gè)端口。比如DNS的53端口,http的80端口。我們能由DNS請(qǐng)求到查詢信息,是因?yàn)镈NS服務(wù)器時(shí)時(shí)刻刻都在監(jiān)聽53端口,當(dāng)收到我們的查詢請(qǐng)求以后,就能夠返回我們想要的IP信息。所以,從程序設(shè)計(jì)上來講,應(yīng)該包含以下步驟:1)服務(wù)端利用Socket監(jiān)聽端口;2)客戶端發(fā)起連接;3)服務(wù)端返回信息,建立連接,開始通信;4)客戶端,服務(wù)端斷開連接。3、Socket雙方如何建立起連接?以下過程用代碼表示:Server端:1intport=2000;2IPEndPointServerEP

3、=newIPEndPoint(IPAddress.Any,port);3Socketserver=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);4server.Bind(ServerEP);5server.Listen(0);Client端:1intport=2000;2IPAddressserverip=IPAddress.Parse("192.168.1.100");3IPEndPointEP=newI

4、PEndPoint(server,port);4Socketserver=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);5server.Bind(EP);當(dāng)服務(wù)器端接收到來自客戶端的連接以后,需要新建一個(gè)socket來處理遠(yuǎn)端的信息。下面一段代碼應(yīng)該在服務(wù)器端:1Socketclient=server.Accept();以上很簡(jiǎn)單的幾行代碼,將在以后的網(wǎng)絡(luò)編程中經(jīng)常用到,后面還會(huì)有同步通訊、異步通訊、線程、

5、委托與事件等等第二部分、各協(xié)議的區(qū)別TCP/IPSOCKETHTTP網(wǎng)絡(luò)七層由下往上分別為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。其中物理層、數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層通常被稱作媒體層,是網(wǎng)絡(luò)工程師所研究的對(duì)象;傳輸層、會(huì)話層、表示層和應(yīng)用層則被稱作主機(jī)層,是用戶所面向和關(guān)心的內(nèi)容。http協(xié)議對(duì)應(yīng)于應(yīng)用層tcp協(xié)議對(duì)應(yīng)于傳輸層ip協(xié)議對(duì)應(yīng)于網(wǎng)絡(luò)層三者本質(zhì)上沒有可比性。何況HTTP協(xié)議是基于TCP連接的。TCP/IP是傳輸層協(xié)議,主要解決數(shù)據(jù)如何在網(wǎng)絡(luò)中傳輸;而HTTP是應(yīng)用層協(xié)議,主要解決如

6、何包裝數(shù)據(jù)。我們?cè)趥鬏敂?shù)據(jù)時(shí),可以只使用傳輸層(TCP/IP),但是那樣的話,由于沒有應(yīng)用層,便無法識(shí)別數(shù)據(jù)內(nèi)容,如果想要使傳輸?shù)臄?shù)據(jù)有意義,則必須使用應(yīng)用層協(xié)議,應(yīng)用層協(xié)議很多,有HTTP、FTP、TELNET等等,也可以自己定義應(yīng)用層協(xié)議。WEB使用HTTP作傳輸層協(xié)議,以封裝HTTP文本信息,然后使用TCP/IP做傳輸層協(xié)議將它發(fā)送到網(wǎng)絡(luò)上。Socket是對(duì)TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個(gè)調(diào)用接口(API),通過Socket,我們才能使用TCP/IP協(xié)議。Http和Soc

7、ket連接區(qū)別相信不少初學(xué)手機(jī)聯(lián)網(wǎng)開發(fā)的朋友都想知道Http與Socket連接究竟有什么區(qū)別,希望通過自己的淺顯理解能對(duì)初學(xué)者有所幫助。1、TCP連接要想明白Socket連接,先要明白TCP連接。手機(jī)能夠使用聯(lián)網(wǎng)功能是因?yàn)槭謾C(jī)底層實(shí)現(xiàn)了TCP/IP協(xié)議,可以使手機(jī)終端通過無線網(wǎng)絡(luò)建立TCP連接。TCP協(xié)議可以對(duì)上層網(wǎng)絡(luò)提供接口,使上層網(wǎng)絡(luò)數(shù)據(jù)的傳輸建立在“無差別”的網(wǎng)絡(luò)之上。建立起一個(gè)TCP連接需要經(jīng)過“三次握手”:第一次握手:客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)

8、器確認(rèn);第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。握手過程中傳送的包里不包含數(shù)據(jù),三次握手完畢后,客戶端與服務(wù)器才正式開始傳送數(shù)據(jù)。理想

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。