首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Telnet会话与TCP会话

Telnet会话与TCP会话
EN

Stack Overflow用户
提问于 2013-12-26 06:47:31
回答 2查看 1.2K关注 0票数 0

TELNET会话和TCP会话有什么不同?我有一个简单的服务器:

代码语言:javascript
复制
public static void main(String[] args) throws IOException {
    ServerSocket ss = new ServerSocket(5555);
    Socket socket = ss.accept();
    System.out.println("Waiting for a client...");
    InputStream sin = socket.getInputStream();
    OutputStream sout = socket.getOutputStream();
    DataOutputStream out = new DataOutputStream(sout);
    out.writeUTF("\u001B[2J");
    out.writeUTF("Hello client\r\n");
    while (true) {
        int b = sin.read();
        sout.write(b);
    }
}

我通过telnet连接并像这样输入:

因此,我假设telnet客户端发送的数据包没有特定的报头,并且完全不更改地传递到低级协议(在我的例子中是TCP)。这是正确的吗?

EN

回答 2

Stack Overflow用户

发布于 2013-12-26 06:51:21

来自http://en.wikipedia.org/wiki/Telnet#Telnet_data

除0377以外的所有数据八位字节都按原样通过

传输进行传输。因此,远程登录客户端应用程序也可用于建立交互式原始TCP会话,并且通常认为这种不使用IAC (0377字符或十进制255 )的会话在功能上是identical.citation所需的。然而,由于存在其它网络虚拟终端(NVT)规则,例如要求后面跟着空(ASCII0)字符的空回车符(CR,ASCII13),这些规则将远程登录协议与所需的原始TCP区分开来。另一方面,许多系统现在拥有真正的原始sessions.clarification客户端,例如UNIX上netcat或socat和Windows上的PuTTY,它也可以用来在没有专门的客户端软件的情况下手动地与其他服务“对话”。尽管如此,远程登录有时仍然用于调试网络服务,例如SMTP、IRC、HTTP、FTP或POP3服务器,以向服务器发出命令并检查响应,但在所有这些协议中,只有FTP真正使用远程登录数据格式。

Telnet与原始TCP会话的另一个不同之处在于,Telnet在默认情况下不是8位干净的。可以协商8位模式,但在请求此模式之前,高位设置的二进制八位数可能会乱码,并且在非Telnet连接中显然不会请求此模式。8位模式(因此称为二进制选项)旨在传输二进制数据,而不是字符。有人试图引入像HTTP一样的可切换字符编码支持,3但对它的实际软件支持一无所知。

我想输入更多,但维基百科已经很好地覆盖了它:)

票数 2
EN

Stack Overflow用户

发布于 2013-12-26 06:52:40

Telnet是服务的名称。TCP是将计算机连接在一起的协议,用于可靠、有序、差错地传送流。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20777385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档