注意
这是一个相当大的问题,所以请耐心等待,如果不清楚我会提前道歉.为了使这个问题易于管理,并尽量减少混淆,我省略了复制和粘贴类的一些属性.
CONTEXT
我正在编写一个联网应用程序 - 一种"远程桌面"应用程序,以便普通技术人员可以帮助他的朋友或邻居解决计算机问题.我意识到像TeamViewer这样的免费和更高级的软件存在,但这个问题并没有讨论创建这个软件的实用性.
共同条款
该客户端是技术人员的书呆子,助手-的控制器.该服务器是"受害者",一遇险.该客户端通常是启动命令服务器之一.
信息
该软件不仅仅是实时查看/控制应用程序.我想要额外的模块,例如文件浏览器模块和聊天模块(因此他们可以在不需要使用额外的即时消息软件的情况下进行通信).
最初,我通过UDP发送和接收消息的方法是手动且低效的.(我使用Lidgren库进行UDP网络连接,这就是为什么我的数据包不显示低级字节,如标题消息大小.)
Original Packet Structure:
Byte Index Type Purpose/Description
------------------------------------------------------
0 byte The intended destination module (e.g. 1 -> Chat module)
1 byte The command for this module to perform (e.g. 0 -> NewChatMessage)
2 byte Encryption/compression flag
3 byte Packet priority flag (e.g. Cancel packets should be processed first)
4-X ? Command-specific …Run Code Online (Sandbox Code Playgroud)