![是否可以通过 TCP 传输任何设备?](https://linux22.com/image/101037/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20TCP%20%E4%BC%A0%E8%BE%93%E4%BB%BB%E4%BD%95%E8%AE%BE%E5%A4%87%EF%BC%9F.png)
是否可以像 /dev 条目一样通过 TCP 传输整个设备?我说的是通过 TCP 传输操纵杆或鼠标/rs232 端口/帧缓冲区开发、声卡开发、磁盘等。
我最感兴趣的是输入设备 - 键盘、操纵杆、平板电脑、鼠标等,其方式比远程鼠标/键盘的专用软件更通用。
答案1
只要这些是 USB 设备,您所寻找的东西多年来都可以通过USB/IP。从此以后Linux 3.17 中引入。请参阅usbip
类似 Debian 系统上的软件包。您甚至可能有Windows 客户端(即访问Linux 服务器上插入的USB 设备)。
至于块设备,Linux已经提供了网络块设备支持时间更长。
答案2
是的,至少对于鼠标等简单设备可以做到这一点,但您必须编写一些代码。基本上,您将在具有物理设备的计算机上有一个与设备通信的进程。然后,该进程通过 TCP 将协议传输到另一台主机。接收进程必须模拟最终进程(X11 服务器或 Wayland 合成器)期望看到的任何接口。在最简单的情况下,接收方可以设置一个命名管道,将数据写入其中,并替换通常使用的设备文件。