📄 client.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 + -