linux C++ udp 发送16进制字节流
时间: 2023-10-09 17:16:35 浏览: 26
可以使用socket库中的sendto()函数发送16进制字节流。下面是一个简单的示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#define SERVER_IP "127.0.0.1"
#define SERVER_PORT 8888
int main()
{
int sock;
struct sockaddr_in server_addr;
char hex_data[] = "\x00\x0a\x5b\x04";
// 创建UDP socket
if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
perror("socket error");
exit(EXIT_FAILURE);
}
// 设置服务器地址
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SERVER_PORT);
if (inet_pton(AF_INET, SERVER_IP, &server_addr.sin_addr) <= 0) {
perror("inet_pton error");
exit(EXIT_FAILURE);
}
// 发送16进制数据
if (sendto(sock, hex_data, strlen(hex_data), 0, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
perror("sendto error");
exit(EXIT_FAILURE);
}
// 关闭socket
close(sock);
return 0;
}
```