客户端请在我的博客里面找一下,一套的,如果有问题,可以加我QQ1092230704,,,,我也是初学者,可以交流一下
#include "pch.h"
#include <iostream>
#include <cstdio>
#include<iostream>
#include<string>
#include<WinSock2.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
const int PORT = 8888;
#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];
memset(RecvBuf, 0, sizeof(RecvBuf));
char SendBuf[MaxBufSize];
memset(SendBuf, 0, sizeof(SendBuf));
while (1) {
receByt = recv(*ClientSocket, RecvBuf, sizeof(RecvBuf), 0);
//buf[receByt]='\0';
if (receByt > 0) {
cout << "接收到的消息是:" << RecvBuf << " 来自客户端:" << *ClientSocket << endl;
// cout<<receByt<<endl;
}
else
{
cout << " 客户端" << *ClientSocket << "断开连接" << endl;
break;
}
// memset(RecvBuf, 0, sizeof(RecvBuf));
//cout << "请输入要发送到客户端的信息:" << endl;
//cin >> RecvBuf;
//gets(SendBuf);
strcat_s(SendBuf, RecvBuf);
int k = 0;
k = send(*ClientSocket, SendBuf, sizeof(SendBuf), 0);
if (k < 0) {
cout << "发送失败" << endl;
}
memset(SendBuf, 0, sizeof(SendBuf));
}//while
closesocket(*ClientSocket);
free(ClientSocket);
return 0;
}
int main() {
WSAData wsd;
WSAStartup(MAKEWORD(2, 2), &wsd);
SOCKET ListenSocket = socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN ListenAddr;
ListenAddr.sin_family = AF_INET;
ListenAddr.sin_addr.S_un.S_addr = INADDR_ANY;//表示填入本机ip
ListenAddr.sin_port = htons(PORT);
int n;
n = bind(ListenSocket, (LPSOCKADDR)&ListenAddr, sizeof(ListenAddr));
if (n == SOCKET_ERROR) {
cout << "端口绑定失败!" << endl;
return -1;
}
else {
cout << "端口绑定成功:" << PORT << endl;
}
int l = listen(ListenSocket, 20);
if (l < 0)
{
perror("listen failed");
exit(1);
}
cout << "服务端准备就绪,等待连接请求" << endl;
while (1) {
//循环接收客户端连接请求并创建服务线程
SOCKET *ClientSocket = new SOCKET;
ClientSocket = (SOCKET*)malloc(sizeof(SOCKET));
//接收客户端连接请求
int SockAddrlen = sizeof(sockaddr);
*ClientSocket = accept(ListenSocket, 0, 0);
cout << "一个客户端已连接到服务器,socket是:" << *ClientSocket << endl;
CreateThread(NULL, 0, &ServerThread, ClientSocket, 0, NULL);
}//while
closesocket(ListenSocket);
WSACleanup();
return(0);
}
c++服务端
最新推荐文章于 2024-08-02 16:42:57 发布