sockets - 为什么telnet仅在Enter上发送数据?

标签 sockets telnet

我在玩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/

相关文章:

c# - INET_NTOA 和 INET_ATON 的 .NET 等价物

java - Java 中使用 SSL 的 HTTP 代理

c# - 如何在 C# 程序中打开 Telnet session 并以编程方式发送命令和接收响应?

c - 对 telnet 代码的响应

ssh - 为什么即使端点出现故障,转发的 SSH 端口似乎仍然打开?

C 套接字 : problem with connect() and/or accept() between clients. 111:连接被拒绝

python - 将所有内容从 argparse 重定向到套接字连接,但通常不重定向到 stdout

python - 套接字错误 : [Errno 10022] An invalid argument was supplied

Linux 外壳 : why is "open" required in this telnet command

perl - 如何在 Perl 中从 telnet 屏幕抓取输出?