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

📄 client.cpp

📁 这是一个计算机网络的实验--实现的是聊天系统
💻 CPP
字号:
#include<string.h>
#include<stdio.h>
#include <iostream.h>
#include<winsock.h>
#pragma comment(lib,"wsock32.lib")
void main()
{
//初始化函数所用变量
	WORD wVersionRequested;		//存版本号用的
	WSADATA wsaData;			// ADATA的类型 用于实现细节 
    int err;			

    //WinSock以DLL的形式提供,在调用任何WinSock API之前,必须调用函数WSAStartup进行初始化
	wVersionRequested=MAKEWORD(1,1);//判断版本号
	err=WSAStartup(wVersionRequested,&wsaData);
 	//判断 winsoket是否初化成功
	if (err!=0)				
	{
		cout<<"获取失败,即将关闭!"<<endl;
		err=WSACleanup();
		return;
	}
    else
	cout<<"初始化成功"<<endl;

	//启动socket通过SOCKET socket()函数;
	SOCKET	sockClient=socket(AF_INET,SOCK_STREAM,0);
	
	//以下开始Bind
	//sockaddr_in结构体的设置
	////其中htons函数负责将主机unsigned short 类型的数据转换成网络上的unsigned short 类型的数据
	sockaddr_in addrClient;	//标识客户机
	addrClient.sin_family=AF_INET;//指代协议族,在socket编程中只能是AF_INET
	addrClient.sin_port=htons(3624);//使用3624端口
	//bind() 将一本地地址与一个SOCKET描述字捆绑在一起
	bind(sockClient,(SOCKADDR*)&addrClient,sizeof(SOCKADDR));

	cout<<"请输入服务器IP地址"<<endl;
	char sip[16];
	cin>>sip;
	cout<<"正在连接服务器...."<<endl;

	SOCKADDR_IN addrSrv; 
	addrSrv.sin_family=AF_INET; 
	addrSrv.sin_addr.S_un.S_addr=inet_addr(sip);
	addrSrv.sin_port=htons(3624); 

	connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); //和服务器连接

	int len =sizeof(SOCKADDR);

	char recvBuf[100];//接受缓冲区的长度
	recvfrom(sockClient,recvBuf,100,0,(SOCKADDR*)&addrSrv,&len);
	cout<<recvBuf<<endl;		
	char sendBuf[100]="客户端连接成功";
	char yes;
	yes='y';
	//通过sendto() 向一指定目的地发送数据
	sendto(sockClient,sendBuf,100,0,(SOCKADDR*)&addrSrv,len);
	while(yes=='y')
	{
		cout<<"请输入你要和服务器通信的话(仅限一句话)"<<endl;
		cin>>sendBuf;
		sendto(sockClient,sendBuf,100,0,(SOCKADDR*)&addrSrv,len);
		cout<<"你要说的已经发送....."<<endl;
		cout<<"等待服务器回复....."<<endl;
		recvfrom(sockClient,recvBuf,100,0,(SOCKADDR*)&addrSrv,&len);
		cout<<recvBuf<<endl;
		cout<<"等待服务器";
		cout<<"是否继续...(请输入y或n):   ";
		cin>>yes;
		sendBuf[0]=yes;
		sendto(sockClient,sendBuf,100,0,(SOCKADDR*)&addrSrv,len);
	}

	closesocket(sockClient); 
	WSACleanup();

	cout<<"与服务器断开...."<<endl;
	char a;
	cin>>a;
}

⌨️ 快捷键说明

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