socket程式設計 實現服務端與客戶端的通訊

2021-06-27 06:26:03 字數 2638 閱讀 8506

伺服器端程式:

[cpp]view plain

copy

//#include "winsock2.h"

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

#include 

using

namespace

std;  

intmain(

intargc, 

char

* argv)  

//建立套接字

sserver = socket(af_inet, sock_stream, ipproto_tcp);      

if(invalid_socket == sserver)  

//伺服器套接字位址 

addrserv.sin_family = af_inet;  

addrserv.sin_port = htons(4999);  

addrserv.sin_addr.s_addr = inaddr_any;        

//繫結套接字

retval = bind(sserver, (lpsockaddr)&addrserv, sizeof

(sockaddr_in));  

if(socket_error == retval)  

//開始監聽 

retval = listen(sserver, 1);  

if(socket_error == retval)  

//接受客戶端請求

sockaddr_in addrclient;  

intaddrclientlen = 

sizeof

(addrclient);  

sclient = accept(sserver,(sockaddr far*)&addrclient, &addrclientlen);  

if(invalid_socket == sclient)  

while

(true

)    

if(buf[0] == 

'0')  

break

;  cout << "客戶端傳送的資料: "

<< buf <

cout << "向客戶端傳送資料: "

;  cin >> sendbuf;  

send(sclient, sendbuf, strlen(sendbuf), 0);  

}  //退出

closesocket(sserver);   //關閉套接字

closesocket(sclient);   //關閉套接字

wsacleanup();           //釋放套接字資源;

return

0;  

}  

客戶端程式:

[cpp]view plain

copy

#include "winsock2.h"

#include 

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

using

namespace

std;  

bool

recvline(socket s, 

char

* buf); 

//讀取一行資料

intmain(

intargc, 

char

* argv)  

//建立套接字

shost = socket(af_inet, sock_stream, ipproto_tcp);  

if(invalid_socket == shost)  

//設定伺服器位址

servaddr.sin_family =af_inet;  

servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"

);  

servaddr.sin_port = htons((short

)4999);  

intnservaddlen  = 

sizeof

(servaddr);  

//連線伺服器

retval=connect(shost,(lpsockaddr)&servaddr, sizeof

(servaddr));  

if(socket_error == retval)  

while

(true

)    

//recvline(shost, bufrecv);

zeromemory(bufrecv, buf_size);  

recv(shost, bufrecv,buf_size , 0); // 接收伺服器端的資料, 只接收5個字元

cout << endl <<"從伺服器接收資料:"

<< bufrecv;  

cout<<"\n"

;  }  

//退出

closesocket(shost); //關閉套接字

wsacleanup(); //釋放套接字資源

return

0;  

}  

python網路程式設計 socket 服務端 客戶端

udp 修改 2018 03 20 重置了布局,增加了udp socket又稱 套接字 應用程式通常通過 套接字 向網路發出請求或者應答網路請求。網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端稱為乙個socket。socket就像 線插口,只有 線插上了,才能通訊。python...

Socket網路程式設計(2) 服務端實現

中秋了,首先祝大家中秋快樂,閒著無事在家整乙個socket的聊天程式,有點仿qq介面,就是瞎折騰,不知道最後是不是能將所有功能實現。如果你對socket不了解,請看這篇文章 可以讓你快速對socket有個整體認識,如果你已經是socket網路程式設計高手,你可以忽略n個字,跳出本文章.lz想實現的功...

Socket網路程式設計(2) 服務端實現

中秋了,首先祝大家中秋快樂,閒著無事在家整乙個socket的聊天程式,有點仿qq介面,就是瞎折騰,不知道最後是不是能將所有功能實現。如果你對socket不了解,請看這篇文章 可以讓你快速對socket有個整體認識,如果你已經是socket網路程式設計高手,你可以忽略n個字,跳出本文章.lz想實現的功...