我的目标是发送一个带有空数据字段的 TCP 数据包,以便测试与远程计算机的套接字。
我正在使用 OutputStream 类的 write(byte[] b) 方法。
我的尝试:
outClient = ClientSocket.getOutputStream();
outClient.write(("").getBytes());
这样做,数据包永远不会出现在线路上。如果将“”替换为“”或任何非零字符串,则效果很好。
我尝试了 jpcap,它对我有用,但没有达到我的目标。
我想到扩展 OutputStream 类,并实现我自己的 OutputStream.write 方法。但这超出了我的知识范围。如果有人已经做过这样的事情,请给我建议。
如果您只是想快速检测静默断开的连接,您可以使用Socket.setKeepAlive( true )
。该方法要求 TCP/IP 处理心跳探测,无需任何数据包或应用程序编程。但是,如果您想要对心跳频率进行更多控制,则应该使用应用程序级数据包来实现心跳。
请参阅此处了解更多详细信息:http://mindprod.com/jgloss/socket.html#DISCONNECT http://mindprod.com/jgloss/socket.html#DISCONNECT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)