我在玩Java套接字,而telnet似乎是一个模拟tcp客户端的好程序。
我不明白的是,为什么telnet只在回车上发送数据?我不是在寻找使它立即发送数据的黑客(因为可以使用(Send data over telnet without pressing enter)),但是我想了解telnet的内部工作/设计,这似乎很自然。
最佳答案
这是一种实现选择。
基本上,使用TCP和UDP,您可以在发送数据之前缓冲任意数量的数据。目标是最大程度地增加有效负载大小,以便您不会为键入的每个键发送单个数据包,这可以通过使用flush()
在每个字符上插入一个套接字的自定义Java telnet客户端轻松实现。
Telnet诞生于远程 shell 程序客户端,并且由于普通的系统 shell 程序处理文本行,因此实现者发现在将数据刷新到服务器之前等待用户键入ENTER是合理的,如果收到数据,服务器将等待回车。分线
关于sockets - 为什么telnet仅在Enter上发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28190021/