【问题标题】:Continuously send mouse position to another machine连续发送鼠标位置到另一台机器
【发布时间】:2010-07-05 18:47:50
【问题描述】:

用 C# 将鼠标位置连续发送到另一台计算机的最佳方法是什么?

到目前为止,我使用 TCP 套接字进行传输。我得到MousePositionToString(),将其转换为byte[] 并发送该字节数组。在接收端,我将字节附加到 StringBuilder,解析它并构造一个新点。至少它有效:-)

我是 .net 新手(虽然我知道一些 Java),我认为有更好的方法。

可以以某种(优雅的)方式序列化/反序列化System.Drawing.Point 吗?可以将此序列化对象发送到远程机器吗?如果有,怎么做?

问候
迈克
[;-)

【问题讨论】:

    标签: c# .net networking serialization


    【解决方案1】:

    不要打扰序列化或字符串:只需将坐标对作为整数发送。您可以使用BitConverter 将整数转换为字节 - 或者只使用BinaryWriter 进行写入,使用BinaryReader 进行读取。

    【讨论】:

      【解决方案2】:

      System.Drawing.Point 已经标有<Serializable>,所以如果你愿意,可以使用.NET 的built in serialization

      【讨论】:

      • 是的。那么用一些任意大小的字节数组实例化一个 BinaryFormatter 和一个 MemoryStream 来一遍又一遍地发送点字节是一个好主意吗? (当然是重用格式化程序)
      • @DerMike,仅当您立即计划发送更大的结构时。我想我和 Jon Skeet 一样,你总是可以从用二进制编写器将点写成整数开始,然后随着你开始拥有一个完整的结构(时间戳、键盘状态等)而转向完全序列化。
      猜你喜欢
      • 1970-01-01
      • 2019-05-19
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      相关资源
      最近更新 更多