我想用Java实现TCP协议。我读过Sun文档和示例,但它们都只是简单地打开一个套接字,客户端等待服务器接受连接,然后发送数据。
我想知道如何使用Java实现三次握手和数据验证?服务器和客户端如何交换序列号?Java是否提供任何类/方法(或至少接口)来实现三次握手?
有人可以给我一些想法,或链接到一些例子?
提前谢谢你,
发布于 2010-10-29 00:14:37
您不能在Java中实现TCP,因为您不能直接访问IP层。Java允许您在传输层(TCP、UDP)工作,但不能在网络层(IP)工作。
注意,我指的是带有标准Java运行时库的“标准”Java。有一些系统(通常是嵌入式系统)在设备驱动程序级别都使用Java。我猜这不是您想要的,但为了以防万一,这里有一个用Java为嵌入式系统编写的完整TCP/IP堆栈的链接:
http://www.jopdesign.com/ejip/index.jsp
发布于 2010-10-29 08:29:59
TCP已经为您完成了所有握手和序列号的工作。您所要做的就是在客户端创建一个套接字,在服务器端创建一个ServerSocket,并接受来自ServerSocket的连接。您不必实现TCP。就这样办。一段时间前;-)
发布于 2011-04-13 00:41:38
是的,这是可能的。您可以使用JPCap这样的库访问Java语言中的IP层。TCP实现的其余部分可以由您构建。当然,这不是一项微不足道的任务。
https://stackoverflow.com/questions/4044805
复制相似问题