Update readme.md
由于竞赛需求,该项目仓库迁移到 https://www.gitlink.org.cn/mahaotian/DeviceShare 烦请移步
DeviceShare 是一款跨平台的多主机输入设备共享工具,支持 Windows、Linux、MacOS 等操作系统。通过 DeviceShare,您可以在多台主机之间共享鼠标、键盘、剪贴板等输入设备,实现多台主机之间的输入设备共享。
演示环境
双机演示
https://github.com/qy-liuhuo/deviceShare/assets/60374114/6e126292-22e0-4d91-bab9-272470689ecd
三机演示
https://github.com/qy-liuhuo/deviceShare/assets/60374114/1b911b8a-976f-4128-9518-9c64c73a7a39
针对x86架构的Windows、Kylin、Debian操作系统以及MacOS系统,我们打包构建了可执行程序,可在Github Release界面下载合适的版本。
若构建的版本无法支持目标机器,可选择源码运行或自行打包。该方案需具备Python3 环境,具体步骤如下:
获取项目代码
使用pip install -r requirements.txt命令安装依赖
选择执行run_server.py 或 run_client.py
安装pyinstaller
使用pyinstaller打包目标程序
注意Kylin操作系统在安装python的evdev依赖时可能出现错误,请选择安装预编译版本evdev-binary,参考 https://python-evdev.readthedocs.io/en/latest/install.html
项目的整体设计框架如上图所示,整体由四个部分构成:
软件的运行流程如下图所示,客户端与服务端作为两个独立模块单独启动,客户端启动后会向局域网中广播自身信息, 服务端收到广播信息后将其加入主机列表,并配置屏幕间的相对位置信息。当服务端主机的光标移出屏幕范围后,会自动判断接下来被控的主机, 并将本机输入设备产生的输入拦截,通过网络模块转发给客户端,客户端收到输入信息后响应相应的控制信号。当客户端的光标移出范围后向服务端主机发送事件标志, 服务端主机停止控制信号的转发,并恢复输入事件的响应。
DeviceShare —— 跨平台多主机输入设备共享
由于竞赛需求,该项目仓库迁移到 https://www.gitlink.org.cn/mahaotian/DeviceShare 烦请移步
项目介绍
DeviceShare 是一款跨平台的多主机输入设备共享工具,支持 Windows、Linux、MacOS 等操作系统。通过 DeviceShare,您可以在多台主机之间共享鼠标、键盘、剪贴板等输入设备,实现多台主机之间的输入设备共享。
功能特性
演示环境
双机演示
https://github.com/qy-liuhuo/deviceShare/assets/60374114/6e126292-22e0-4d91-bab9-272470689ecd
三机演示
https://github.com/qy-liuhuo/deviceShare/assets/60374114/1b911b8a-976f-4128-9518-9c64c73a7a39
使用说明
针对x86架构的Windows、Kylin、Debian操作系统以及MacOS系统,我们打包构建了可执行程序,可在Github Release界面下载合适的版本。
若构建的版本无法支持目标机器,可选择源码运行或自行打包。该方案需具备Python3 环境,具体步骤如下:
获取项目代码
使用pip install -r requirements.txt命令安装依赖
选择执行run_server.py 或 run_client.py
安装pyinstaller
使用pyinstaller打包目标程序
注意Kylin操作系统在安装python的evdev依赖时可能出现错误,请选择安装预编译版本evdev-binary,参考 https://python-evdev.readthedocs.io/en/latest/install.html
系统架构
项目的整体设计框架如上图所示,整体由四个部分构成:
软件的运行流程如下图所示,客户端与服务端作为两个独立模块单独启动,客户端启动后会向局域网中广播自身信息, 服务端收到广播信息后将其加入主机列表,并配置屏幕间的相对位置信息。当服务端主机的光标移出屏幕范围后,会自动判断接下来被控的主机, 并将本机输入设备产生的输入拦截,通过网络模块转发给客户端,客户端收到输入信息后响应相应的控制信号。当客户端的光标移出范围后向服务端主机发送事件标志, 服务端主机停止控制信号的转发,并恢复输入事件的响应。
TODO