Socket編程簡介

Socket編程簡介

ID:41032633

大?。?1.29 KB

頁數(shù):12頁

時間:2019-08-14

Socket編程簡介_第1頁
Socket編程簡介_第2頁
Socket編程簡介_第3頁
Socket編程簡介_第4頁
Socket編程簡介_第5頁
資源描述:

《Socket編程簡介》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、孫鑫第十四課Socket編程之一簡介2011-04-2710:291?Socket編程分為基于TCP的和基于UDP的TCP:面向連接的,可靠的傳輸,連接要經(jīng)過三次握手,客戶端在連接之前就得按照已知的服務(wù)器地址端口進(jìn)行連接,服務(wù)器端在等到客戶端的連接后返回一個連接套接字,之后的信息發(fā)送接收就按這條連接進(jìn)行,不需要再有地址信息。UDP:面向無連接的,不可靠的,不會進(jìn)行重發(fā),由于沒有連接,因此每次發(fā)送都要指明對方的IP端口,每次接收都要信息的同時要接收對方地址端口。?在socket編程中,套接字有三種,流式套接字(SOCK_STREAM),數(shù)據(jù)報套接字(S

2、OCK_DGRAM),原始套接字(SOCK_RAW),基于TCP的采用的是流式套接字,基于UDP的采用的是數(shù)據(jù)報套接字,socket2.0版本不支持原是套接字。?2?基于TCP的套接字編程★?基于TCP的服務(wù)器端套接字編程步驟①協(xié)商版本/初始化(WSAStartup)②建立服務(wù)器套接字(socket)③套接字綁定本機(jī)IP和端口(bind)④設(shè)置為監(jiān)聽模式(listen)⑤開始監(jiān)聽連接,如果有連接到來則返回一個連接套接字(同時取得客戶端地址端口),否則一直在此監(jiān)聽。(accept)⑥使用連接套接字開始和客戶端通信(發(fā)送/接收)。(send/recv)⑦

3、通信完畢,關(guān)閉套接字(連接套接字/?服務(wù)器套接字)。(closesoket)⑧釋放資源,刪除套接字庫的使用。(WSACleanup)?★?基于TCP的客戶端套接字編程步驟①協(xié)商版本/初始化(WSAStartup)②建立客戶端套接字(socket)③指定服務(wù)器地址/端口。(SOCKADDR_INaddrServer)④連接服務(wù)器(connect)⑤開始通信(發(fā)送/接收)。(send/recv)⑥通信完畢,關(guān)閉套接字。(closesoket)⑦釋放資源,刪除套接字庫的使用。(WSACleanup)?NOTE基于TCP的socket編程中服務(wù)器端和客戶端的

4、區(qū)別:①客戶端不用綁定本地IP和端口。②由于服務(wù)器是被動的等待連接,因此必須先由客戶端發(fā)起連接請求(這樣服務(wù)器才能知道客戶端的地址端口),而客戶端在連接服務(wù)器之前就應(yīng)該已經(jīng)知道了服務(wù)器地址。?3基于UDP的套接字編程★?基于UPD的服務(wù)器端套接字編程步驟①協(xié)商版本/初始化(WSAStartup)②建立套接字(socket)③綁定本地IP端口(bind)④通信,發(fā)送/接收(sendto/recvfrom)⑤通信完畢,關(guān)閉套接字(closesocket)⑥釋放資源,刪除使用套接字庫(WSACleanup)?★?基于UDP的客戶端套接字變成步驟①協(xié)商版本/

5、初始化(WSAStartup)②建立套接字(socket)③通信,發(fā)送/接收(sendto/recvfrom)④通信完畢,關(guān)閉套接字(closesoket)⑤釋放資源,刪除使用套接字庫(WSACleanup)?NOTE:基于UDP的客戶端編程中客戶端不必發(fā)起連接請求,為了能達(dá)到服務(wù)器,需要在sendto函數(shù)中指定地址端口。?服務(wù)器段也需要在sendto函數(shù)中指定客戶端的地址端口。而在基于TCP的服務(wù)器中,在返回連接套接字后,已經(jīng)和對方建立了連接,也就是說早accept函數(shù)中取得了客戶端的地址?;赥CP的客戶端中,在發(fā)起連接請求的時候要指定服務(wù)器的地

6、址和端口,因此連接建立以后的send/recv都不再需要地址端口。???4TCP實例下面是孫鑫老師視頻中講的一個基于TCP的socket編程例子(稍有改動),提供了socektTCP編程的基本思路。////////////////////////////////////////////服務(wù)器端////////////////////////////////////////////////////////#include?//必須的頭文件#include#include"stdio.h"#pragmacomm

7、ent(lib,"ws2_32.lib")?//指定連接的庫文件,取代在VC工程設(shè)置里添加usingnamespacestd;?intmain(){???WORDwVersionRequested;//版本號????WSADATAwsaData;????interr;???wVersionRequested=MAKEWORD(1,1);//1.1版本的套接字,協(xié)商版本初始化???err=WSAStartup(wVersionRequested,&wsaData);????if(err!=0)?//加載套接字庫,加裁失敗則返回???{???????ce

8、rr<<"startuperror!"<

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

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

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