我写了一个 Pythonn 服务器/客户端套接字/网络程序,其中服务器运行在云虚拟机中,客户端在我的计算机上本地运行。
客户端打开与服务器的TCP连接,服务器
accept()
建立连接,然后它调用recv()
一个while(1)
循环来听命令。当它收到命令(例如ls
)时,它会运行它并将输出发送回客户端。
连接到虚拟机,运行命令,然后退出比
ssh
快 3 倍(0.7 秒对 2.5 秒),但运行单个命令要慢得多。
例如。使用
ssh
,连接后,我运行一个命令,输出似乎(几乎?)即时,但在我的程序中有明显的延迟。
SSH 命令如何发送和返回如此之快?
SSH命令之所以发送和返回如此之快,是因为SSH使用了一个叫做ControlMaster的多路复用特性。此功能允许多个 SSH 会话共享一个网络连接,从而减少建立新连接的开销