定时发送心跳包用C++代码举例说明
时间: 2023-07-10 18:34:52 浏览: 87
以下是一个简单的C++代码示例,用于每隔一定时间发送一个心跳包:
```c++
#include <iostream>
#include <cstring>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <errno.h>
using namespace std;
int main()
{
int sockfd, n;
char recvline[1024];
struct sockaddr_in servaddr;
// 创建socket
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
cout << "socket error: " << strerror(errno) << endl;
exit(1);
}
// 设置服务器地址
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(8080);
if (inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr) <= 0) {
cout << "inet_pton error for 127.0.0.1" << endl;
exit(1);
}
// 连接服务器
if (connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0) {
cout << "connect error: " << strerror(errno) << endl;
exit(1);
}
// 定时发送心跳包
while (true) {
n = write(sockfd, "heartbeat", strlen("heartbeat"));
if (n < 0) {
cout << "write error: " << strerror(errno) << endl;
exit(1);
}
sleep(1); // 暂停1秒钟
}
// 关闭socket
close(sockfd);
return 0;
}
```
该代码使用了socket连接服务器,并通过write函数向服务器发送"heartbeat"字符串。通过在while循环中添加sleep函数,可以实现每隔一定时间发送心跳包的功能。
阅读全文