我迷路了。我一直在网上搜索了好几天,但我找不到答案。我或多或少是一个初学者套接字程序员,但我确实了解它。发送IP数据包
我想要做以下的事情:
- 创建一个自定义数据包(从零做起,设定每个值)
- 发送
无论是JAVA,C++或C#。是否有一个易于使用的库,或者是否有一个核心类,允许我?我已经尝试过Java库jnetpcap,但是这只会给我提供错误,即使在运行示例和遵循eclipse安装指南时也是如此。
任何帮助非常感谢!
注:这是针对Windows
我迷路了。我一直在网上搜索了好几天,但我找不到答案。我或多或少是一个初学者套接字程序员,但我确实了解它。发送IP数据包
我想要做以下的事情:
无论是JAVA,C++或C#。是否有一个易于使用的库,或者是否有一个核心类,允许我?我已经尝试过Java库jnetpcap,但是这只会给我提供错误,即使在运行示例和遵循eclipse安装指南时也是如此。
任何帮助非常感谢!
注:这是针对Windows
我已经在Linux窗口和插座BSD用winsock用于C++的插座。
这是我找到的最好的指南http://beej.us/guide/bgnet/output/html/multipage/index.html
编辑: Beej指南拥有一切:背景资料,简单的例子,先进的主题,如数据打包和一些幽默
的Java:插座
http://download.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html
Java:原始插座
http://www.savarese.com/software/rocksaw/
C#的TcpClient
http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient%28v=vs.71%29.aspx
C#:原始套接字
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx
它应该是相当容易查找所有四个例子。
我已经看过两个,但我不认为他们会允许我真的从头开始构建数据包。对不清楚的问题 –
很简单,如果你这样做java。
初学者。 http://download.oracle.com/javase/tutorial/networking/datagrams/clientServer.html
添,
每个分组需要固定长度的报头,接着通过身体和任选的拖车。固定的头部长度头部应该具有诸如分组长度(体长+尾部长度),时间戳,唯一分组ID(用于将大分组分成多个小分组)的细节。
接收器将总是首先读取固定长度的报头并确定数据包长度并读取数据包的其余部分。
需要每可变长度的元件,如姓名等简单数据包结构的
实施例之前,将大小追加:
标题大小 - 1个字节
发送的细节,如姓名,ID,性别
部首
[8] - 1个字节//大小(名称长度+名称+编号+性别)
体
[5] - 1个字节//名称长度
[Jeeva] - N字节
[1000] - 1字节ID
[0] - 1字节性别(0 - 男性,1-女性)
注意:您需要小心Endianess。请求进一步的问题以进行澄清
+1和-1让我微笑。 –
您是否想知道如何设计数据包结构?或者你已经决定了数据包的结构,但不知道如何实现它 – Jeeva
你不指定如何'定制'你的数据包,但我想你想[this](http://stackoverflow.com/questions/3964013 /如何-发送-原始以太网数据包与-C)。 –
@SemVanmeenen是的,这正是我需要的!我仍然更喜欢Java或C++而不是C#,所以如果你有任何C++或者Java替代品,那么我会为此付出努力,谢谢! –