#include<iostream>
#include<Windows.h>
using namespace std;struct DataPack
{int age;char name[32];};int main()
{//初始化ws2_32.dllWORD ver = MAKEWORD(2, 2);WSADATA wsaData;WSAStartup(ver, &wsaData);//对应WSACleanup的调用//1.建立一个socketSOCKET _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;
}