建立乙個能持續處理的C S網路程式

2022-03-17 03:44:27 字數 2616 閱讀 5954

程式流程圖:

**演示:

伺服器端:

#include#include

#include

#include

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

intmain()

//2.繫結

sockaddr_in _sin = {}; //

建立網路位址

_sin.sin_family =af_inet;

_sin.sin_port = htons(4567); //

host to network short

_sin.sin_addr.s_un.s_addr = inet_addr("

127.0.0.1

"); //

ip位址

if (bind(_sock, (sockaddr *)&_sin, sizeof(_sin)) ==socket_error)

else

//3.監聽網路埠

if (listen(_sock, 5) == socket_error)//

第二個引數為最大等待多少人可以同時連線

else

//4.等待接收客戶端連線

sockaddr_in clientaddr ={};

int naddrlen = sizeof

(sockaddr_in);

socket _csock =invalid_socket;

_csock = accept(_sock, (sockaddr *)&clientaddr, &naddrlen);

if (_csock ==invalid_socket)

printf(

"新客戶端加入:socket=%d,ip = %s\n

",(int)_csock, inet_ntoa(clientaddr.sin_addr));//

inet_ntoa(clientaddr.sin_addr)將接收到的ip位址轉化為字串

char _recvbuff[128] ={};

while (1

)

printf(

"收到命令:%s\n

",_recvbuff);

//6.請求處理

if (0 == strcmp(_recvbuff, "

getname"))

else

if (0 == strcmp(_recvbuff, "

getage"))

else

}//8.關閉自身的socket

closesocket(_sock);

//winsocket關閉

wsacleanup();

system(

"pause");

return0;

}

客戶端:

#include#include

#include

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

intmain()

//2.連線伺服器

sockaddr_in _sin = {}; //

建立網路位址

_sin.sin_family =af_inet;

_sin.sin_port = htons(4567); //

host to network short

_sin.sin_addr.s_un.s_addr = inet_addr("

127.0.0.1

");//

inet_addr("127.0.0.1");

//ip位址

int ret = connect(_sock, (sockaddr *)&_sin, sizeof

(sockaddr_in));

if (socket_error ==ret)

else

while (true

) ;

scanf("%s

", cmdbuff);

//4.處理請求命令

if (0 == strcmp(cmdbuff, "

exit"))

else

//6.接收伺服器資訊

char recvbuff[256] ={};

int nlen = recv(_sock, recvbuff, 256, 0

);

if (nlen <= 0

)

else

}//7.關閉套接字

closesocket(_sock);

//winsocket啟動

wsastartup(ver, &dat);

//winsocket關閉

wsacleanup();

printf(

"已退出!");

getchar();

return0;

}

建立能持續處理請求的Server端改造

include includeusing namespace std int main else 填充sockaddr in結構 sockaddr in sin sin.sin family af inet sin.sin port htons 1234 sin.sin addr.s un.s ad...

建立乙個虛擬網路

建立乙個虛擬網路,為之後的自定義安裝虛擬機器做準備 實現此案例需要按照如下步驟進行。root room9pc01 vim etc libvirt qemu networks vbr.xml vbr vbr為虛擬網路的名字 ip為192.168.1.254 ip範圍是100 200 root room...

pointer events,乙個神奇的css屬性

pointer events,搞前端的朋友們應該聽說過這個屬性吧。每年聖誕節的時候,許多網頁上都會掛出乙個雪花飄落的特效增加一些節日氣氛。有一些是用flash實現的,也有用html js實現的。當時就很好奇為何在頁面z軸最上層增加了乙個層卻完全不會影響下面元素的任何事件響應。簡直是前端黑科技。後來看...