char 数组 第0位为0x53 第一位为0x47用udp发送 c++代码示例
时间: 2024-10-12 19:07:47 浏览: 20
在C++中,你可以使用`struct`、`union`或者直接将字符数组包装成`std::vector<char>`来表示包含特定字节的数组,然后通过UDP套接字发送。这里是一个简单的例子:
```cpp
#include <iostream>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
// 定义数据结构,用于存储包含特定字节的数组
struct CustomByte {
char data[2];
};
int main() {
// 初始化字符数组
CustomByte customByte;
customByte.data[0] = 0x53; // 'S'
customByte.data[1] = 0x47; // 'G'
// 创建UDP套接字
int sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock == -1) {
std::cerr << "Failed to create socket" << std::endl;
return 1;
}
// 设置目的地址
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(8000); // UDP端口号
inet_pton(AF_INET, "localhost", &server_addr.sin_addr);
// 发送数据
ssize_t bytes_sent = sendto(sock, customByte.data, sizeof(customByte.data), 0,
(struct sockaddr*)&server_addr, sizeof(server_addr));
if (bytes_sent == -1) {
std::cerr << "Failed to send data: " << strerror(errno) << std::endl;
close(sock);
return 1;
}
std::cout << "Data sent successfully." << std::endl;
// 关闭套接字
close(sock);
return 0;
}
```
这个示例创建了一个UDP套接字,设置了源地址(通常是本地主机),并将`customByte`中的数据发送到指定的IP地址和端口。
阅读全文