奇怪的udp套接字发送行为

时间:2013-05-14 14:53:28

标签: c sockets udp sendto

我正在尝试使用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但是dest端口变为2698.我正在尝试更改代码中的端口,但它对真正的目标端口没有任何影响。它仍然是2698。 我该如何解决?

1 个答案:

答案 0 :(得分:0)

尝试使用IPPROTO_UDP代替IPPROTO_IP

client_sockd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);