#include
#include
#include
#include
SOCKET sockClient;
SOCKADDR_IN clientSrv;
char recvBuf[100];
HANDLE hThread;
void CALLBACK TimeProc
(
HWND hwnd,
UINT message,
UINT idTimer,
DWORD dwTime
);
DWORD WINAPI Fun1(LPVOID lpParameter);
DWORD WINAPI Fun2(LPVOID lpParameter);
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( );
return;
}
sockClient=socket(AF_INET,SOCK_STREAM,0);
char *pIP=(char*)malloc(sizeof(char)*10);
char *strHostName=(char*)malloc(sizeof(char)*10);
DWORD dwIP=0;
strHostName="xxxxx"; //此处写上自己的域名
HOSTENT *pHS=gethostbyname(strHostName);
if(pHS==NULL)
{
return;
}
pIP=inet_ntoa(*((in_addr*)pHS->h_addr_list[0]));
clientSrv.sin_addr.S_un.S_addr=inet_addr(pIP);
clientSrv.sin_family=AF_INET;
clientSrv.sin_port=htons(12345);
while(1)
{
if(connect(sockClient,(SOCKADDR*)&clientSrv,sizeof(SOCKADDR))==SOCKET_ERROR)
{
Sleep(3000);
closesocket(sockClient);
sockClient=socket(AF_INET,SOCK_STREAM,0);
continue;
}
else
break;
}
hThread=CreateThread(NULL,0,Fun1,0,0,0);
CloseHandle(hThread);
UINT timerid=SetTimer(NULL,1,2000,TimeProc);
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
if(msg.message==WM_TIMER)
{
DispatchMessage(&msg);
}
}
KillTimer(NULL,timerid);
closesocket(sockClient);
WSACleanup();
}
void CALLBACK TimeProc
(
HWND hwnd,
UINT message,
UINT idTimer,
DWORD dwTime
)
{
send(sockClient,"心跳测试",strlen("心跳测试")+1,0);
}
DWORD WINAPI Fun1(LPVOID lpParameter)
{
while (1)
{
if (connect(sockClient,(SOCKADDR*)&clientSrv,sizeof(SOCKADDR))==SOCKET_ERROR)
{
int i=::WSAGetLastError();
if (i==10056)
{
if(recv(sockClient,recvBuf,100,0)==SOCKET_ERROR)
{
cout<
测试心跳
最新推荐文章于 2023-02-14 09:59:33 发布