WinSocket程式設計筆記(一)

2022-04-29 15:21:12 字數 1793 閱讀 9533

前言:

注:

以下**都以c++環境為例

一.windows socket 基礎

windows socket dll的初始化和釋放函式的呼叫方法

windows socket 網路程式設計思路

1.初始化 windows socket

2.建立socket

3.將socket與位址結構繫結

4.傳送/接收資料

5.釋放socket

6.終止windows socket

socket常用函式和資料結構:

//windows socket 的初始化和終止

wsastartup

wsacleanup

//建立和釋放socket

socket

closesocket

//繫結socket和位址結構

bind

listen

accept

connetc

sockaddr

sockaddr_in

in_addr

//傳送, 接收資料

send

sendto

recv

recvfrom

標頭檔案:

#include #include 

#pragma comment(lib,"ws2_32.lib")

寫在主函式中(寫在main()中的引數):

wsadata wsadata;

::wsastartup(makeword(

2,2),&wsadata);

或者寫成:

word sockversion = makeword(2, 2);

wsadata data;

if (wsastartup(sockversion, &data) != 0)

return 1;

登出函式wsacleanup

::wsacleanup();
或者:

wsacleanup();
原型:

socket socket(int af, int type, int protocol);//這裡定義名稱為小寫socket

建立tcp套接字:

socket sock = socket(af_inet, sock_stream, 0);
或者:

socket clientsocket =socket(af_inet, sock_stream, ipproto_tcp);

if (clientsocket ==invalid_socket)

socket clientsocket =socket(af_inet, sock_stream, ipproto_tcp);

closesocket(clientsocket);

wsacleanup();

return0;

}

結果:

因為只是建立了套接字,關閉套接字,所以程式直接退出

(待續)

reference

[winsocket程式設計]

WinSocket程式設計筆記(五)

三.udp的socket程式設計 先前的socket伺服器端與客戶端需要建立連線才能通訊,因此是面向連線的基於tcp的socket。而這裡的基於udp的socket是面向無連線的,也就是說不必呼叫 listen 和 accept 函式,那麼connect 函式也就一樣沒有使用的必要了。udp新增的函...

WinSocket程式設計筆記(三)

二.kerberos協議的實現 現有alice as tgs bob,實現alice和bob的安全金鑰交換 這裡只實現alice和as之間的通訊 我把各個部分的 拆開來寫 1.隨機會話金鑰生成 include include using namespace std intmain 2.加密演算法 i...

winsocket程式設計例項

include include void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 socket socksrv socket af inet,sock stream,0 sockaddr in addrsrv addrs...