帮我写一段心跳包程序,用C语言
时间: 2023-08-16 19:08:02 浏览: 147
以下是一个简单的心跳包程序,使用C语言编写:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#define PORT 8888
#define BUF_SIZE 1024
int main() {
int sock;
char msg[BUF_SIZE];
struct sockaddr_in server_addr;
// 创建socket
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("socket create failed");
exit(EXIT_FAILURE);
}
// 设置服务器地址
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT);
if (inet_pton(AF_INET, "127.0.0.1", &server_addr.sin_addr) <= 0) {
perror("inet_pton error");
exit(EXIT_FAILURE);
}
// 连接服务器
if (connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
perror("connect failed");
exit(EXIT_FAILURE);
}
// 发送心跳包
while (1) {
strcpy(msg, "heartbeat");
if (send(sock, msg, strlen(msg), 0) < 0) {
perror("send failed");
exit(EXIT_FAILURE);
}
printf("send heartbeat\n");
sleep(3);
}
// 关闭socket
close(sock);
return 0;
}
```
这个程序使用了TCP协议与服务器进行连接,并在每隔3秒钟发送一个字符串"heartbeat"作为心跳包。你可以根据自己的需要修改程序中的IP地址、端口号和心跳包内容。
阅读全文