我只是这个套接字编程的初学者...... 我尝试使用SOCK_RAW创建UDP client_server程序。我可以从服务器部分发送消息。但是在客户端部分我得到了垃圾值。并且接收消息包的大小也不同。可以帮我用SOCK_RAW做这个客户端服务器程序。 我尝试了这个客户端 - 服务器与eth0& eht1,我试图从eth0发送1个数据包到eth1发送方显示“OK”消息..但收到的数据是垃圾.. 在我使用UDP协议完成正常的客户端服务器程序之前。我从普通的udp客户端服务器获得了正确的输出。当我尝试使用SOCK_ROW时,它在发送部分时显示错误。
答案 0 :(得分:2)
让您的生活更简单并使用SOCK_DGRAM - 内核将处理数据报标头,您只需提供有效的IP地址和数据。用户负责使用SOCK_RAW附加(在发送之前)和解析(在接收时)UDP报头。
答案 1 :(得分:0)
您很可能会看到IP和UDP标头并将其称为“垃圾”。这就是SOCK_ROW的作用。如果要在使用SOCK_ROW时访问消息内容,则应解析并跳过协议标题。