VC下socket網路程式設計實現

2021-07-01 22:31:28 字數 2037 閱讀 8064

sockets(套接字)程式設計有三種,流式套接字(sock_stream),資料報套接字(sock_dgram),原始套接字(sock_raw);基於tcp的socket程式設計是採用的流式套接字。在這個程式中,將兩個工程新增到乙個工作區。要鏈結乙個ws2_32.lib的庫檔案。

伺服器端程式設計的步驟:

1:載入套接字型檔,建立套接字(wsastartup()/socket());

3:將套接字設定為監聽模式等待連線請求(listen());

4:請求到來後,接受連線請求,返回乙個新的對應於此次連線的套接字(accept());

5:用返回的套接字和客戶端進行通訊(send()/recv());

6:返回,等待另一連線請求;

7:關閉套接字,關閉載入的套接字型檔(closesocket()/wsacleanup())。

伺服器端**如下:

[cpp]view plain

copy

#include 

#include 

void

main()  

if( lobyte( wsadata.wversion ) != 1 ||  

hibyte( wsadata.wversion ) != 1 )   

socket socksrv=socket(af_inet,sock_stream,0);  

sockaddr_in addrsrv;  

addrsrv.sin_addr.s_un.s_addr=htonl(inaddr_any);  

addrsrv.sin_family=af_inet;  

addrsrv.sin_port=htons(6000);  

bind(socksrv,(sockaddr*)&addrsrv,sizeof

(sockaddr));  

listen(socksrv,5);  

sockaddr_in addrclient;  

intlen=

sizeof

(sockaddr);  

while

(1)  

}  客戶端程式設計的步驟:

1:載入套接字型檔,建立套接字(wsastartup()/socket());

2:向伺服器發出連線請求(connect());

3:和伺服器端進行通訊(send()/recv());

4:關閉套接字,關閉載入的套接字型檔(closesocket()/wsacleanup())。

客戶端的**如下:

[cpp]view plain

copy

#include 

#include 

void

main()  

if( lobyte( wsadata.wversion ) != 1 ||  

hibyte( wsadata.wversion ) != 1 )   

socket sockclient=socket(af_inet,sock_stream,0);  

sockaddr_in addrsrv;  

addrsrv.sin_addr.s_un.s_addr=inet_addr("127.0.0.1"

);  

addrsrv.sin_family=af_inet;  

addrsrv.sin_port=htons(6000);  

connect(sockclient,(sockaddr*)&addrsrv,sizeof

(sockaddr));  

send(sockclient,"hello"

,strlen(

"hello"

)+1,0);  

char

recvbuf[50];  

recv(sockclient,recvbuf,50,0);  

printf("%s/n"

,recvbuf);  

closesocket(sockclient);  

wsacleanup();  

vc下socket程式設計步驟

vc下網路程式設計需注意 1.加上鏈結檔案ws2 32.lib 2.標頭檔案包含 winsock.h 編寫步驟如下 sockets 套接字 程式設計有三種 流式套接字 sock stream 資料報套接字 sock dgram 原始套接字 sock raw 基於tcp的socket程式設計是採用的流...

VC網路程式設計 Socket套接字程式設計

基於tcp的socket程式設計 tcp伺服器 include 包含標頭檔案 include include pragma comment lib,ws2 32.lib 顯式連線套接字型檔 int main 主函式開始 closesocket s 關閉套接字控制代碼 closesocket s1 w...

扔掉Socket實現網路程式設計

隨著計算機網路化的深入,計算機網路程式設計在程式設計的過程中變得日益重要。許多文章都曾經介紹過用vc 進行socket程式設計的方法。但由於都是直接利用動態連線庫wsock32.dll進行操作,實現比較繁瑣。其實,vc 的mfc類庫中提供了casyncsocket這樣乙個套接字類,用它來實現sock...