SOCK_RAW与IPPORT_UDP使用的问题!
小弟在写一个traceroute程序,使用了sock_raw,建立的是UDP协议socket,设置IP和UDP头部内容,但我可以把数据发送出去,但返回的是ICMP报文,我用原来的sock接收不到,不知道用什么别的办法? 问题点数:100、回复次数:6Top
1 楼blastzgd(悟道)回复于 2004-12-01 13:07:10 得分 50
楼主:
你需要另建一个SOCK_RAW的套接字,协议使用IPPROTO_ICMP.用来接收路由器返回的超时ICMP消息.
另外:你的UDP套接字可以使用普通的SOCK_DGRAM,用不着使用SOCK_RAW.Top
2 楼kingzai(stevenzhu)回复于 2004-12-01 14:01:07 得分 5
http://www.codeguru.com/forum/showthread.php?t=318349Top
3 楼windcsn(向所有的朋友学习!)回复于 2004-12-01 16:32:49 得分 0
blastzgd(边城浪子):
你说,接收的时候使用另外一个套节字?那么能收到数据吗?
还有,使用SOCK_DGRAM的时候可以设置IP的TTL和本地端口吗?Top
4 楼windcsn(向所有的朋友学习!)回复于 2004-12-02 09:01:28 得分 0
大虾们,给点帮助啊!Top
5 楼jia20003(『gloomy fish』兄弟们一个一个结婚刺激我想跳楼!)回复于 2004-12-02 11:20:17 得分 45
你需要另建一个SOCK_RAW的套接字,协议使用IPPROTO_ICMP.用来接收路由器返回的超时ICMP消息.
可以发送icmp消息的~Top
6 楼windcsn(向所有的朋友学习!)回复于 2004-12-02 12:38:50 得分 0
其实现在我想明白了,知道怎么做了
实际上使用ICMP/UDP/TCP都可以实现tracert程序
谢谢各位Top
相关问题
- RAW SOCK问题??
- Win98支持SOCK_RAW吗?
- 我的sock = (int)socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)怎么return -1
- SOCK_RAW 可以在window98下用吗?
- 请问windows的raw socket可以接收tcp、udp包么?
- raw socket能否像udp socket,指定对方ip,port
- 套接字中,第二个参数SOCK_RAW 与SOCK_PACKET 有什么区别
- 为什么我的 SOCK_RAW IPPROTO_TCP 啥也收不到?
- 关于原始套接字SOCK_RAW问题
- VPACKET.VXD能取得其他网络适配器(非以太网卡,如MODEM)的数据包吗?WIN2K的SOCK_RAW呢?




