请问,任何人都可以帮助用c / c ++编写服务器 - 客户端原始套接字程序

时间:2011-11-10 23:40:03

标签: sockets tcp network-programming raw-sockets

我是原始套接字的新手。我想写一个服务器和一个客户端应用程序,它使用原始套接字在一个或多个文件中发送和接收原始数据。每个文件可以包含一个或多个50字节的数据段,每个数据段具有指定的分隔符(即空格,回车等)。我的服务器的工作是从文件中读取并一次发送每个段。每个数据包应仅包含没有任何传统报头信息的数据,例如MAC地址之类的以太网报头(数据包可能在数据包前面包含某种形式的数据,以指示数据包的长度和/或开始以及分隔符表示数据包的结束)。客户端应用程序应该只是听取 port,解析数据并将原始数据写入文件。

请指导我。我找到了许多原始套接字程序,但没有一个是清楚的。如果有人能给我一个坚实的开始,那就太棒了。

1 个答案:

答案 0 :(得分:4)

你可以在这里看到:http://sock-raw.org/papers/sock_raw,但你说的确实可能。 实际上,想象一下,在您的数据中,您拥有的数据与可以路由的协议相匹配,数据包将被路由。实际上,如果您看到文档,Raw套接字句柄和有效负载。你必须有一个标题(在你的情况下,它必须从0开始说个人标题,并且在没有标题之后,juste有效负载)。并且,也许它可以与非常基本的路由器/交换机一起工作,但现在,这听起来很困难,因为路由器看起来数据并且可能想象这是损坏的数据。