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

📄 client.cpp

📁 TCP一个简单应用,功能不完善,刚学的, 运用一下刚学的知识
💻 CPP
字号:
#include <Winsock2.h>
#include <iostream>
using namespace std;
//#include "stdlib.h"

#pragma comment (lib, "WS2_32.lib")

//服务器端口号5050
#define DEFAULT_PORT 5050
//缓冲区的长度
//#define DATA_BUFFER 1024
//void main(int argc,char *argv[])
void main()
{
	WSADATA wsaData;
	SOCKET sClient;
	//cout << "hello";

	int iPort = DEFAULT_PORT;
//服务器地址长度
	int iLen;

	int iSend;
//接收数据的缓冲
	int iRecv;
//要发送的信息
	char buf[] = "2004041226";
	char buf2[200];
//接受数据的缓冲区
//	char recv_buf[DATA_BUFFER];
//服务器端地址
	struct sockaddr_in server;

//	if(argc < 2)
//	{
//		cout << "Usage:client[server IP address]\n";
//		return;
//	}
//接受数据缓冲区初始化
//	memset(recv_buf,0,sizeof(recv_buf));

	if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
	{
		cout <<"Failed to load Winsock.\n";
		return;
	}
//建立服务器端地址
	server.sin_family = AF_INET;
	server.sin_port = htons(iPort);
//server.sin_addr.s_addr = ("127.0.0.1");
	server.sin_addr.s_addr = inet_addr("127.0.0.1");
//建立客户端数据套接口
	sClient=socket(AF_INET,SOCK_DGRAM,0);
	if(sClient == INVALID_SOCKET)
	{
		cout << "套接口错误:"<<WSAGetLastError()<<endl;
		return;
	}
	iLen=sizeof(server);
//	printf("请输入您的学号:\n");
//	scanf("%s",&buf);
/*	if(connect(sClient,(struct sockaddr*)&server,sizeof(server)) ==INVALID_SOCKET)
	{   
		int temp = WSAGetLastError();
		cout << "connect()Failed:"<< temp << endl;
		return;
	}
	else
	{
		//从服务器端接收数据
		iLen = recv(sClient,buf,sizeof(buf),0);
		if(iLen == 0 )
			return;
		else if(iLen == SOCKET_ERROR)
		{
			int temp = WSAGetLastError();
			cout << "recv() Failed:"<< temp <<endl;
		}
		cout << "recv data from server:" << buf;
	}*/

	iSend = sendto(sClient,buf,sizeof(buf),0,(SOCKADDR*)&server,iLen);
	if(iSend==SOCKET_ERROR)
	{  
		cout << "sendto() Failed:"<< WSAGetLastError() << endl;
		return;
	}
	else if(iSend == 0)
		return;
	else
		cout << "发送成功.\n";
	 iRecv = recvfrom(sClient,buf2,200,0,(SOCKADDR*)&server,&iLen);
		if( iRecv == SOCKET_ERROR)
		{
			
			cout << "接收错误:" << WSAGetLastError() << endl;
			return;
		}
//		else if(iRecv == 0)
////		{
//			return;
//		}
		cout << "返回为:" << buf2<<endl;

//从服务器接收数据
	/*iRecv=recvfrom(sClient,recv_buf,sizeof(recv_buf),0,(struct sockaddr*)&server,&iLen);
	if(iRecv==SOCKET_ERROR)
	{   int temp =  WSAGetLastError();
		cout << "recvfrom() Failed:"<< temp << endl;
		return;
	}
	else if(iRecv == 0)
		return;
	else
	{
		cout << "接收到的数据为"<<recv_buf<<endl;
	}
	
	int i;
	cin >> i; 
	cout << "hello!";*/
	closesocket(sClient);
	WSACleanup();
	system("pause");
}

⌨️ 快捷键说明

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