#include<iostream>
#include<Windows.h>
using namespace std;
struct DataPack
{
int age;
char name[32];
};
int main()
{
//初始化ws2_32.dll
WORD ver = MAKEWORD(2, 2);
WSADATA wsaData;
WSAStartup(ver, &wsaData);//对应WSACleanup的调用
//1.建立一个socket
SOCKET _sock = ::socket(AF_INET, SOCK_STREAM, 0);
//填充sockaddr_in结构
sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(1234);
sin.sin_addr.S_un.S_addr = inet_addr(\"172.20.22.25\");
//2.connecd连接服务器
int cont = connect(_sock, (sockaddr*)&sin, sizeof(sin));
if (cont == SOCKET_ERROR)
{
cout << \"连接服务器失败\" << endl;
WSACleanup();
return 0;
}
else
{
cout << \"连接服务器成功\" << endl;
}
//3.手动输入命令
while (true)
{
char Hc[128] = {};
cout << \"请输入命令\" << endl;
cin >> Hc;
if (0 == strcmp(Hc, \"exit\")) //Client自身处理命令
{
break;
}
else
{
//4.向服务端发送命令请求
int FS=send(_sock, Hc, 128, 0);
if (FS > 0)
{
cout << \"向服务端发送命令成功\" << endl;
}
else
{
cout << \"向服务端发送命令失败\" << endl;
}
}
//5.recv接受信息
char buff[256];
int nRecv = ::recv(_sock, buff, 256, 0);
if (nRecv > 0)
{
DataPack* dp=(DataPack*)buff;
cout << \"年龄:\" <<dp->age<< endl;
cout << \"姓名:\" << dp->name << endl;
}
}
//6.关闭套接字
closesocket(_sock);
WSACleanup();
cout << \"收到exit命令后,退出\" << endl;
system(\"pause\");
return 0;
}