WinSock2的簡單通訊例子

2022-09-12 08:21:14 字數 2166 閱讀 8127

server端:

#include #include 

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

intmain()

//建立伺服器的socket物件

socket connserver;

connserver =socket(af_inet, sock_stream, ipproto_tcp);

if (connserver ==invalid_socket)

//繫結位址和埠

sockaddr_in addr;

addr.sin_family =af_inet;

addr.sin_addr.s_un.s_addr = inet_addr("

127.0.0.1");

addr.sin_port = 9999

;

int errcode = bind(connserver, (sockaddr*)&addr, sizeof

(addr));

if (errcode ==socket_error)

//listen 監聽

errcode = listen(connserver, 1

);

if (errcode ==socket_error)

//宣告和初始化變數

socket acceptsocket; //

執行accept函式後新建用於實際通訊的套接字

int lensocket = sizeof

(acceptsocket);

sockaddr_in clientsocket;

int lenclinet = sizeof

(clientsocket);

int bytesrecv =socket_error;

char sendbuf[64] = ""

;

char recvbuf[64] = ""

; acceptsocket = accept(connserver, (sockaddr*)&clientsocket, &lenclinet);

//迴圈

while (true

)

return0;

}

view code

client端:

#include #include 

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

intmain()

//建立連線到伺服器的socket物件

socket connectsocket;

connectsocket =socket(af_inet, sock_stream, ipproto_tcp);

if (connectsocket ==invalid_socket)

//構建位址資訊

sockaddr_in clientservice;

clientservice.sin_family =af_inet;

clientservice.sin_addr.s_un.s_addr = inet_addr("

127.0.0.1");

clientservice.sin_port = 9999

;

//連線到伺服器

if (connect(connectsocket, (sockaddr*)&clientservice, sizeof(clientservice)) ==socket_error)

printf(

"連線成功!!!\n");

//宣告和初始化變數

char sendbuf[64] = "

client: sending data.\n";

char recvbuf[64] = ""

;

//傳送資料

while (true

)

if (wsacleanup() ==socket_error)

return0;

}

view code

tips:先客戶端發訊息,服務端才能傳送。也就是一問一答形式。

日記 如何在MFC中使用Winsock2

目前使用的visual studio 6.0的mfc4.2使用的是winsock1.1,聽說mfc7.1中使用的也是。最近,為了使用wsaioctl,需要把使用winsock2,不過不能直接在專案中include winsock2.h,因為winsock2.h是winsock.h的乙個超集,直接新增...

Winsock2網路程式設計實用教程 pdf格式

winsock2網路程式設計實用教程 目 錄第一部分 基礎篇 第1章 計算機網路基礎 1 1 計算機網路概述 1 1 1 計算機網路的定義 1 1 2 計算機網路的分類 1 1 3 計算機網路體系結構 1 2 internet基礎 1 2 1 internet的發展 1 2 2 internet的特...

最簡單的WINSOCK通訊模型

程式所需控制項 winsock控制項,commandbutton控制項 預設name textbox控制項 乙個名稱為txtmess,另乙個名稱為txtsend 程式 如下 private sub form load dim my as string winsock1.protocol scku r...