gpt4 book ai didi

c - 如何通过 UDP 发送 SNMP 数据包

转载 作者:行者123 更新时间:2023-11-30 16:43:24 24 4
gpt4 key购买 nike

我的套接字的想法是接收和发送 SNMP 数据包 - GetRequest/GetResponse。然而,套接字已经接收到 SNMP 数据包

...
unsigned char buf[8192];
...
for (;;) {
// Receive snmp message from snmp manager
recv_len = recvfrom(my_socket, buf, BUFSIZE, 0, (struct sockaddr
*)&remote_addr, &addr_len);
...

现在我想通过 SNMP 数据包应答请求,该数据包表示为字符串。注意:响应包含 GetResponse-PDU (a2)。

unsigned char * packet = "302902010004067075626c6963a21c...";
int r = sendto(my_socket, packet, strlen(packet), 0, (struct sockaddr *)&remote_addr, addr_len);

返回值或r4并且肯定是错误的,因为我响应的SNMP数据包packet大于4。为什么,因为这是一个指针?

此外,响应 SNMP-Packet packet 不会作为 SNMP-Packet 发送,它与 packet 相比看起来有所不同,并且不会在 Wireshark 中解释为 SNMP-Packet 。看起来像这样:

enter image description here

如何发送有效的 SNMP 数据包?

最佳答案

您的问题是 strlen(packet) 值,由于 00 字节,该值为 4。strlen 旨在与 ASCII 字符串一起使用,而不是与二进制字符串一起使用。

关于c - 如何通过 UDP 发送 SNMP 数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45296132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com