定时发送心跳包用C++代码举例
时间: 2023-07-11 14:40:15 浏览: 36
以下是一个简单的C++代码示例,用于定时发送心跳包:
```
#include <iostream>
#include <WinSock2.h> // Windows平台使用的套接字库头文件
using namespace std;
int main()
{
// 初始化套接字库
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
{
cout << "Failed to initialize Winsock." << endl;
return -1;
}
// 创建套接字
SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET)
{
cout << "Failed to create socket." << endl;
WSACleanup();
return -1;
}
// 设置服务器地址和端口号
sockaddr_in serverAddr;
memset(&serverAddr, 0, sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 这里假设服务器IP为127.0.0.1
serverAddr.sin_port = htons(12345); // 这里假设服务器端口号为12345
// 连接服务器
if (connect(sock, (sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR)
{
cout << "Failed to connect to server." << endl;
closesocket(sock);
WSACleanup();
return -1;
}
// 定时发送心跳包
while (true)
{
char data[] = "heart beat"; // 心跳包数据
int ret = send(sock, data, sizeof(data), 0); // 发送心跳包数据
if (ret == SOCKET_ERROR)
{
cout << "Failed to send heart beat." << endl;
break;
}
Sleep(1000); // 暂停1秒钟
}
// 关闭套接字和释放套接字库资源
closesocket(sock);
WSACleanup();
return 0;
}
```
注意,这里使用了Windows平台的套接字库,因此只能在Windows操作系统上运行。如果你需要在其他操作系统上运行,请使用相应的套接字库。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)