我正在尝试使用UDP套接字发送数据并使用Wireshark(在Windows7下)捕获数据:

client_sockd= socket(AF_INET,SOCK_DGRAM,IPPROTO_IP);
client_address.sin_family = AF_INET;
client_address.sin_addr.s_addr = inet_addr("192.168.3.100");
client_address.sin_port=htons(8015);
client_len=sizeof(client_address);
int sended = sendto(client_sockd,buf,11,0,(const struct sockaddr *)&client_address,sizeof(client_address));


它会将数据包发送到正确的ip,但目标端口变为2698。我正在尝试更改代码中的端口,但对实际目标端口没有任何影响。仍然是2698。
我该如何解决?

最佳答案

尝试使用IPPROTO_UDP代替IPPROTO_IP

client_sockd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

10-08 00:41