如题:
#include "iostream"
#include "winsock2.h"
#define PORT 65432
#pragma comment(lib, "ws2_32.lib")
typedef struct {
char name[11];
char stdNum[10];
unsigned short age;
int score;
} Student;
using namespace std;
int main(int argc, char **argv)
{
int sock_client;
struct sockaddr_in server_addr;
int addr_len = sizeof(struct sockaddr_in);
WSADATA wsaData;
WORD wVersionRequested=MAKEWORD(2,2);
if(WSAStartup(wVersionRequested,&wsaData)!=0)
{
cout<<"加载winsock.dll 失败!\n";
return 0;
}
if ((sock_client = socket(AF_INET,SOCK_STREAM,0))<0)
{
cout<<"创建套接字失败!错误代码:"<<WSAGetLastError()<<endl;
WSACleanup();
return 0;
}
char IP[20];
cout<<"输入服务器IP 地址:\n";
cin.getline(IP,sizeof(IP));
server_addr.sin_family =AF_INET;
server_addr.sin_port = htons(PORT);
server_addr.sin_addr.s_addr = inet_addr(IP);
if(connect(sock_client,(struct sockaddr *)&server_addr,addr_len)!=0)
{
cout<<"连接失败!错误代码:"<<WSAGetLastError()<<endl;
closesocket(sock_client);
WSACleanup();
return 0;
}
cout<<"请输入学生的姓名、学号、年龄、成绩:"<<endl;
Student a={"","",0,0};
cin>>a.name >>a.stdNum >>a.age >>a.score ;
a.age=htons(a.age);
a.score =htonl(a.score);
if(send(sock_client,(char*)&a,sizeof(a),0)<0)
cout<<"发送信息失败!错误代码:"<<WSAGetLastError()<<endl;
else
cout<<"信息发送成功!\n";
closesocket(sock_client);
WSACleanup();
return 0;
}