【问题标题】:strange udp socket sendto behaviour奇怪的 udp 套接字 sendto 行为
【发布时间】:2013-05-14 14:53:28
【问题描述】:

我正在尝试使用 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。 我该如何解决?

【问题讨论】:

    标签: c sockets udp sendto


    【解决方案1】:

    尝试IPPROTO_UDP 而不是IPPROTO_IP

    client_sockd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);    
    

    【讨论】:

    • 感谢您的回答。我已经尝试了这两种变体,但没有任何积极的结果。
    • 您确定您的程序在您更改某些内容后正在重新编译吗?你看到的很奇怪。你的开发环境是什么?
    • 我的开发环境是eclipse with mingw。在对代码进行任何更改后,我进行了清理和重建,以确保一切都是最新的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 2011-02-09
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    相关资源
    最近更新 更多