0

我只是这个套接字编程的初学者......我尝试使用 SOCK_RAW 制作一个 UDP client_server 程序。我可以从服务器部分发送消息。但是在客户端部分我得到垃圾值。并且接收消息包的大小也不同。你能帮我用 SOCK_RAW 做这个客户端服务器程序吗?我用 eth0 和 eht1 尝试了这个客户端-服务器,我尝试从 eth0 向 eth1 发送 1 个数据包,发送端显示“OK”消息..但收到的数据是垃圾..在我使用 UDP 协议完成普通客户端服务器程序之前。我从正常的 udp 客户端服务器获得正确的输出。当我尝试使用 SOCK_ROW 时,它在发送部分显示错误。

4

2 回答 2

2

让您的生活更简单并使用SOCK_DGRAM - 内核将处理数据报头,您只需要提供有效的 IP 地址和数据。用户有责任使用 SOCK_RAW 附加(在传输之前)和解析(在接收时)UDP 标头。

于 2013-01-30T06:39:44.207 回答
0

Most likely you are seeing IP and UDP headers and calling them "garbage". That is what SOCK_ROW does. You should parse and skip protocol headers if you want to get to your message content while using SOCK_ROW.

于 2013-01-30T06:12:49.293 回答