服务器
#include <stdio.h>
#include <winsock2.h>
#pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll
int main() {
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
SOCKET sock=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(1503);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
bind(sock,(struct sockaddr*)&addr, sizeof(addr));
listen(sock, 20);
SOCKADDR client_addr;
int size = sizeof(client_addr);
while (1)
{
SOCKET client = accept(sock, (SOCKADDR*)&client_addr, &size);
char buffer[200];
int len = recv(client, buffer, sizeof(buffer), 0);
send(client, buffer, len, 0);
memset(buffer, 0, sizeof(buffer));
closesocket(client);
}
closesocket(sock);
WSACleanup();
//return 0;
}
客户端
#include <stdio.h>
#include <stdlib.h>
#include <WinSock2.h>
#include<iostream>
#include <string>
#pragma comment(lib, "ws2_32.lib") //加载 ws2_32.dll
using namespace std;
int main() {
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(1503);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
char buffersend[200];
char bufferrecv[200];
while (1)
{
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
connect(sock, (SOCKADDR*)&addr, sizeof(addr));
cout << "请输入消息:";
gets_s(buffersend);
send(sock, buffersend, sizeof(buffersend), 0);
recv(sock, bufferrecv, sizeof(bufferrecv), 0);
cout << "收到消息:" << bufferrecv << endl;
memset(buffersend, 0, sizeof(buffersend));
memset(bufferrecv, 0, sizeof(bufferrecv));
closesocket(sock);
}
WSACleanup();
//system("pause");
//return 0;
}