⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.cpp

📁 基于Socket的服务端和客户端程序
💻 CPP
字号:
// Client.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "winsock2.h"
#include "stdio.h"

int _tmain(int argc, _TCHAR* argv[])
{	
	int				port = 5150;
	char			dataSendBuf[5] = {'a', 'b', 'c', 'd', 'e'};
	char			datdReceiveBuf[20];
	int				sendFlag;
	char			receiveFlag;

	WSADATA			wsaData;
	SOCKET			socketClient;
	SOCKADDR_IN		serverAddr;
	
	//initialize the Windows Socket 2.2
	if(WSAStartup(MAKEWORD(2,2), &wsaData) != 0)
	 {
		 perror("Cannot initialize the Windows Socket 2.2 !");
		 exit(1);
	 }

	//create a socket to listen the ask of the client
	socketClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	if(socketClient == INVALID_SOCKET)
	{
		printf("Socket failed with error %d \n", WSAGetLastError());
		WSACleanup();
		exit(1);
	}

	//fill in the address information of the Server
	serverAddr.sin_family = AF_INET;
	serverAddr.sin_port = htons(port);
	serverAddr.sin_addr.s_addr = inet_addr("192.168.2.107");
	/*memset(dataBuf, 8, sizeof(dataBuf));*/

	if( connect(socketClient, (SOCKADDR *)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR)
	{
		printf("Can not connect the server %d \n", WSAGetLastError());
		closesocket(socketClient);
		WSACleanup();
		exit(1);
	}
	else
	{
		printf("connect successfully !");
	}

	unsigned char tempChar;
	while(1)
	{
		printf("Please press the Enter key!\n");
		scanf("%c", &tempChar);

		sendFlag = send(socketClient, dataSendBuf, (int)sizeof(dataSendBuf), 0);
		if(sendFlag == INVALID_SOCKET)
		{
			printf("send error!");
			break;
		}

		//接收数据
		receiveFlag = recv(socketClient, datdReceiveBuf, sizeof(datdReceiveBuf), 0);
				
		if(receiveFlag < 0)
		{//接收不正常
			printf("break\n");
			break;
		}
		else if(receiveFlag == 0)
		{//连接断开
			printf("Ending connection\n");					
		}
		else
		{//接收完成
			//打印接收到的数据
			printf("the data come from server are these:\n");
			int i;
			for(i = 0; i < (receiveFlag - 1); i++)
				{
					printf("%c-", datdReceiveBuf[i]);
				}
			printf("%c", datdReceiveBuf[i]);
			printf("\n");
		}				
	}
	closesocket(socketClient);
	WSACleanup();
	return 0;
}

⌨️ 快捷键说明

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