在Java中读写TCP头(选项)

时间:2013-01-10 21:52:12

标签: java networking tcp header

我想做的是: 编写客户端和服务器以通过TCP用Java发送字符串,到目前为止使用Socket和Input- / Output-Streams没问题。

但是现在我正在尝试在tcp标头enter image description here的“选项”字段中添加3个数字。我找不到任何有用的教程或其他关于如何自定义标题以及如何阅读它的内容。

有什么建议吗?

2 个答案:

答案 0 :(得分:5)

你不能:

  • 在应用程序级别,您无权访问TCP标头;
  • Java也没有原始套接字。

但是,通过设置不同的套接字选项,您可以在某种程度上影响某些的TCP行为。但不是直接操纵TCP头。

答案 1 :(得分:1)

不使用像jNetPcap这样的外部库。 jNetPcap允许您格式化并发送自己的数据包。

jNetPcap Installation Guide (Eclipse)

jNetPcap Installation Guide (NetBeans)

formatting and sending packet的非常粗略的示例代码。 它可能很粗糙,但它向您展示了自定义数据包的可能性。

编辑: 忘记提到jNetPcap是libpcap的Java包装器。它们本来是用来读取数据包的。