server.cpp

来自「使用winsock实现网络编程,完成客户端服务器端的简单通信.」· C++ 代码 · 共 69 行

CPP
69
字号
#include<stdio.h>
#include<winsock2.h>

void main()
{
	WSADATA wsaData;
	SOCKET  server;
	SOCKET  connSock;
	SOCKADDR_IN tcpAddr;
	SOCKADDR_IN clientAddr;
	vector <char> recBuff[100];
	vector char sendBuff[100];
	int port = 10000;

	int len=sizeof(clientAddr);
	WSAStartup(MAKEWORD(2,2),&wsaData);

	server = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
	
	tcpAddr.sin_family = AF_INET;
	tcpAddr.sin_port = htons(port);
	tcpAddr.sin_addr.s_addr = htonl(INADDR_ANY);
	
	int bindError;
	bindError=bind(server,(SOCKADDR *)&tcpAddr,sizeof(tcpAddr));
	if(bindError==SOCKET_ERROR)
	{
		printf("error is : %s\n",WSAGetLastError());
	}
	else
	{
		printf("Bind is successful ...\n");
	}

	listen(server,5);
	connSock=accept(server,(SOCKADDR*)&clientAddr,&len);
	if(connSock==INVALID_SOCKET||connSock==WSAEWOULDBLOCK)
	{
		printf("error is : %s\n",WSAGetLastError());
	}
	else
	{
		printf("Accept is successful ...\n\n");
	}
	while(1)
	{
		
		//memset(recBuff,0,100);
		int recvNum=0;
		recvNum=recv(connSock,recBuff,100,0);
		if(recvNum==SOCKET_ERROR)
		{
			printf("Client is closing ...\n");
			break;
		}
		printf("recv number :%d\n",recvNum);
		printf("client say : %s\n",recBuff);
		//memset(sendBuff,0,100);
		
		gets(sendBuff);
		int sendNum=0;
		sendNum=send(connSock,sendBuff,100,0);
		printf("%d\n",sendNum);
	}
	closesocket(connSock);
	closesocket(server);
	WSACleanup();
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?