#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<
<
测试心跳
最新推荐文章于 2024-05-18 22:44:57 发布