一、简介
本实验采用c++实现了tcp Server,采用多线程的方式可以同时与多个客户端通讯。其中主线程阻塞接收客户端连接,收到连接后开辟一个子线程做相应处理。
二、代码
#include <stdio.h>
#include <winsock2.h>
#include <WS2tcpip.h>
#define MAXCLIENTNUM 100 //服务端连接客户端个数限制
#include <iostream>
using namespace std;
#pragma comment(lib,"ws2_32.lib")
typedef struct ClientInf//客户端信息 使用结构体是为了方便信息变量的扩展
{
SOCKET client_socket;
}ClientInf;
DWORD WINAPI Thread(LPVOID lpParameter) //子线程函数
{
while (true)//循环
{
//接收数据
ClientInf client_inf = *(ClientInf *)lpParameter;
char rev_data[255];
int ret = recv(client_inf.client_socket, rev_data, 255, 0);
if (ret > 0)
{
rev_data[ret] = 0x00;
printf(rev_data