定时发送心跳包用C++代码举例
时间: 2023-07-10 21:36:43 浏览: 37
以下是一个简单的C++代码示例,用于定时发送心跳包:
```
#include <iostream>
#include <winsock2.h>
#include <windows.h>
using namespace std;
int main() {
WSADATA wsaData;
SOCKET sock;
SOCKADDR_IN serverAddr;
int nRet;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
cout << "Failed to load Winsock library." << endl;
return -1;
}
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET) {
cout << "Failed to create socket." << endl;
return -1;
}
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(8888);
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
nRet = connect(sock, (SOCKADDR*)&serverAddr, sizeof(serverAddr));
if (nRet == SOCKET_ERROR) {
cout << "Failed to connect to server." << endl;
closesocket(sock);
WSACleanup();
return -1;
}
while (true) {
nRet = send(sock, "heart beat", strlen("heart beat"), 0);
if (nRet == SOCKET_ERROR) {
cout << "Failed to send heart beat." << endl;
break;
}
Sleep(5000); // 每隔5秒发送一次心跳包
}
closesocket(sock);
WSACleanup();
return 0;
}
```
这段代码使用Winsock库建立一个TCP连接,并循环发送"heart beat"的字符串作为心跳包,每隔5秒发送一次。其中,`Sleep()`函数用于暂停程序的执行,以便定时发送心跳包。请注意,此示例仅供参考,实际使用时需要根据具体的需求进行修改。