X11频道到底是什么?

3

在我找到的所有X11文档中,都写着类似这样的内容:

服务器和客户端之间的通信是通过交换通道上的数据包来完成的。连接由客户端建立(协议中未指定客户端如何启动)。(来自维基百科)

我还没能找到这个通道具体是什么?例如网络通道?它在一个端口上吗?它是一个内存映射吗?任何帮助都将不胜感激。

2个回答

3
'通道'这个术语是有意模糊的,因为它可以是本地套接字、远程连接(如SSH)、命名管道或其他允许客户端/服务器双向通信的方法。也就是说,'通道'只是两点之间便于数据交换的连接。
在SSH上执行X11转发时,通道是SSH连接。例如,请参阅SSH man页面: $ man ssh

X11连接和任意TCP/IP端口也可以通过安全通道进行转发。

或者根据x.org文档:

X客户端和服务器之间的通信通道是全双工的:任一方都可以随时向另一方发送消息。尽管通常使用TCP/IP套接字接口来实现,但也经常使用其他通信通道,包括Unix域套接字、命名管道和共享内存。通道必须提供可靠的、有序的字节流---X协议不提供重新排序或重发数据包的机制。


2
X11支持多种客户端和服务器之间的通信方式。这些所谓的"通道"可以是TCP套接字、UNIX套接字和其他许多网络机制,如DECnet、令牌环等。今天真正使用的只有TCP和UNIX套接字。
X服务器是一个进程,具有访问图形硬件、键盘和鼠标的权限。在计算机屏幕上产生图形的任何应用程序都称为客户端。通常,工作站上运行一个X服务器,多个X客户端。应用程序(客户端)需要通过TCP套接字(由IP地址和端口号标识)或UNIX套接字(由文件名标识,例如/tmp/X0)连接到X服务器。
如果服务器和客户端都在同一系统上运行,它们通常通过UNIX套接字连接。然而,X11的一个伟大特点是,服务器和客户端不必驻留在同一系统上,而是通过网络通过TCP套接字连接。这使我们能够在网络上的不同计算机上运行应用程序,并将它们的图形输出带到一个屏幕上。(单个应用程序还可以连接到多个X服务器并在多个屏幕上分发图形内容。)

任何在计算机屏幕上生成图形的应用程序都被称为客户端。客户端也可以在不需要绘制的情况下进行绑定。 - user559633

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接