C++SOCKET多线程网络编程实现多个客户端与服务器通信
#设计思路
通过在服务器端建立两个线程,主线程用来监听客户端的接入,当有新的客户端接入时,服务器为新的客户端建立服务线程,通过服务线程来实现服务器与客户端的通信。
#结果演示
服务器端代码:
#include"stdafx.h"
#include <cstdio>
#include<iostream>
#include<string>
#include<WinSock2.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
const int PORT = 8000;
#define MaxClient 10
#define MaxBufSize 1024
#define _CRT_SECURE_NO_WARINGS
//服务线程
DWORD WINAPI ServerThread(LPVOID lpParameter){
SOCKET *ClientSocket=(SOCKET*)lpParameter;
int receByt=0;
char RecvBuf[MaxBufSize];
char SendBuf[MaxBufSize];
while(1){
receByt = recv(*ClientSocket,RecvBuf,sizeof(RecvBuf),0);
//buf[receByt]='\0';
if(receByt>0){
cout<<"接收到的消息是:"<<RecvBuf<<" 来自客户端:"<<*ClientSocket<<endl;
// cout<<receByt<<endl;
}
else
{
cout<<"接收消息结束!"<<endl;
break;
}
memset(RecvBuf,