UDP编程代码学习(tcp编程和udp编程代码的异同)

2023-11-10 06:24:26 数码极客 bianji01

 

UDP编程作业,求高人帮忙。~~~!!!2个星期。~

最好的方式是查jdk,看有DatagrAMPacket和DatagramPacket什么方法。

本回答由提问者推荐

C++的UDP编程,设置广播地址为255.255.255.255,广播不出去

看起来不像是代码有错而更像这两台机器的设置有问题。几个问题:

1、从别的机器上发出的广播,这两台机器能收到吗?

2、从这两台机器向255.255.255.255发广播,如果在它们上面运行wireshark,能抓到UDP包吗?

3、这两台机器的网卡没有被设成promiscuousmode吧?

4、把这两台机器的网卡和其他工作的机器的网卡换了看看什么结果?

5、如果你的机器跑windows7,可以在这两台机器和其他机器上用windowsnetworkandconnectioncenter里面自带的networkmap看看各台机器之间是怎样连接的。

更多追问追答

1、别的机器发的255.255.255.255,这俩机器是能收到的,但是这俩的255是发不出去的。2、抓不到UDP包。

3、这不是在linux下的吗,不懂怎么设。。能教下命令不。4、换不了网卡。不过在这俩机子上运行的虚拟机,是可以发送和接收的。

5、找不到那软件。

1、看来这俩机器和外面是连接着的。

2、wireshark抓不到说明你的包根本没有到达网卡的硬件,在那之前就丢了。

3、不是要你设这种状态,只要你看看你的那两台机器会不会收到根本不是发给它们的包??不过看来可能性不大。

4、如果虚拟机可以运行,说明网卡本身也是好的。

5、那软件linux下确实没有。

UDP本身在layer4。下面就是找问题出在layer3还是layer2了。用netstat-r看看路由表的设置,再用ifconfig-a看看网卡的设置,相当可能问题是出在路由表上面。

谢谢你了!忘了说了我的是win7的系统了。问题机子的ip:192.168.4.43,在这个机子上setsockopt的返回值是1,不是0!(成功了才返回0,同样代码其他的可用的机子都能返回0)

下面是它的路由表和ipconfig的图片。

机子的网卡设置ipconfig-aLL,还有几个虚拟机的没截图出来。

下面是一台正常机子(IP192.168.4.43)的路由表:

再次谢谢你!

setsockopt失败了的话,WSAGetLastError()返回什么错误代码?

另,能不能把那个网关为192.169.55.1的路由加到问题机器的路由表上?

不好意思,这几天忙其他项目去了就没回复。WSAGetLastError是那天我注释掉了一行代码才出错的,搞错了哇不好意思。

本身的程序没有错哇!是那该死的虚拟机!把虚拟网卡都给禁用了就能正常使用了!

声明:易趣百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系315127732@qq.com
广告位招租
横幅广告