18,356
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <iostream>
#include "Winsock2.h"
#pragma comment(lib,"Ws2_32.lib")
#define MAX_BUFFER 1024*1024
int _tmain(int argc, _TCHAR* argv[])
{
if (argc!=3)
{
std::cout<<"input like send 192.168.168.18 1000";
return 0;
}
//char szRemoteIP[20];
//strcpy(szRemoteIP,argv[1]);
int iSendCount=atoi(argv[2]);
WSADATA wsadata;
WSAStartup(0x0202,&wsadata);
SOCKADDR_IN addrto,addrlocal;
addrlocal.sin_family=AF_INET;
addrlocal.sin_port=htons(9100);
addrlocal.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrto.sin_family=AF_INET;
addrto.sin_port=htons(9101);
addrto.sin_addr.S_un.S_addr=inet_addr(argv[1]);
SOCKET sockbind=socket(AF_INET,SOCK_STREAM,IPPROTO_IP );
if(sockbind==INVALID_SOCKET)
{
std::cout<<"socket error,"<<GetLastError()<<std::endl;
return 0;
}
else
{
std::cout<<"socket value:"<<sockbind<<std::endl;
}
/*if(SOCKET_ERROR==bind(sockbind,(sockaddr*)&addrlocal,sizeof(sockaddr)))
{
std::cout<<"bind error,"<<GetLastError()<<std::endl;
return 0;
}
*/
int iconnect=connect(sockbind,(sockaddr*)&addrto,sizeof(sockaddr));
if(SOCKET_ERROR==iconnect)
{
std::cout<<"connect error:"<<WSAGetLastError();
WSACleanup();
return 0;
}
char *szsend=new char[/*MAX_BUFFER*/iSendCount];
szsend[/*MAX_BUFFER*/iSendCount-1]='\0';
memset(szsend,'A',/*MAX_BUFFER*/iSendCount-1);
int isendlen=send(sockbind,szsend,/*MAX_BUFFER*/iSendCount,0);
if(isendlen<=0)
{
std::cout<<"send error:"<<WSAGetLastError();
return 0;
}
else
std::cout<<"send count:"<<isendlen<<std::endl;
Sleep(2000);
if(SOCKET_ERROR ==closesocket(sockbind))
{
std::cout<<"close socket error"<<GetLastError()<<std::endl;
}
if(SOCKET_ERROR ==WSACleanup())
{
std::cout<<"wsacleanup error"<<GetLastError()<<std::endl;
}
return 0;
}