发送IP数据包

时间:2011-07-27 07:19:21

标签: c# java c++ sockets packets

我迷路了。我已经在网上搜索了几天,但我找不到答案。我或多或少是一个初学者套接字程序员,但我确实理解它。

我想做以下事情:

  1. 创建自定义数据包(从头开始,设置每个值)
  2. 发送
  3. Java,C ++或C#。有一个易于使用的库,还是有一个允许我的核心类?我已经尝试过Java库jnetpcap,但这只会给我带来错误,即使在运行示例并遵循eclipse的安装指南时也是如此。

    非常感谢任何帮助!

    注意:它适用于Windows

5 个答案:

答案 0 :(得分:4)

答案 1 :(得分:4)

jNetPcap是一个基于WinPcap的API,只需安装WinPcap即可运行:)

作为替代方案,您可以尝试使用其他库,例如Jpcap(对于Java)和SharpPcap(对于C#)

答案 2 :(得分:3)

我在linux中使用了winsock,在linux中使用了socket,并使用了socket bsd。

这是我找到http://beej.us/guide/bgnet/output/html/multipage/index.html

的最佳指南

编辑: Beej的指南包含所有内容:背景信息,简单示例,高级主题,如数据打包和一些幽默

答案 3 :(得分:0)

答案 4 :(得分:0)

每个数据包都需要一个固定长度标题,后跟Body和可选的预告片。固定的头长标题应该包含数据包长度(正文长度+预告片长度),时间戳,唯一数据包ID(用于将大数据包分成多个小数据包)等详细信息。

接收器将始终首先读取固定长度的报头并确定数据包长度并读取数据包的其余部分。

您需要在名称等每个可变长度元素之前附加大小。

简单数据包结构示例:

标题大小 - 1个字节

发送名称,ID,性别

等详细信息

标题

[8] - 1字节//大小(姓名长度+姓名+ Id +性别)

[5] - 1字节//名称长度

[Jeeva] - N Bytes

[1000] - 1个字节ID

[0] - 1字节性别(0 - 男性,1女性)

注意:您需要注意Endianess。提出进一步的问题以澄清