2010-07-05 5 views
2

Что было бы лучшим способом постоянно отправлять позицию мыши на другой компьютер в C#?Непрерывно отправить позицию мыши на другую машину

До сих пор я использую сокет TCP для транспортировки. Я получаю ToString()MousePosition, конвертируем его в byte[] и отправляем этот массив байтов. На принимающей стороне я добавляю байты в StringBuilder, разбираю его и конструирую новую точку. По крайней мере, он работает :-)

Я новичок в .net (хотя я знаю некоторую Java), и я думаю, что есть лучший способ.

Может ли сериализовать/десериализовать System.Drawing.Point в некотором (элегантном) способе? Можно ли отправить этот сериализованный объект на удаленную машину? И если да, то как?

С уважением
Майк
[;-)

ответ

1

System.Drawing.Point уже отмечен <Serializable>, поэтому, если вы захотите, вы можете использовать NET. built in serialization.

+0

Да. Так что это хорошая идея создать экземпляр BinaryFormatter и MemoryStream с помощью некоторого произвольного размера байтового массива для отправки байт точек снова и снова? (Reusing Formatter, конечно) – DerMike

+0

@DerMike, только если вы сразу планируете отправлять большие структуры. Я думаю, что я с Джоном Скитом на этом, вы всегда можете начать с написания точек как целых чисел с бинарной записью, а затем перейти к полной сериализации, когда у вас начнется целая структура (временные метки, состояния клавиатуры и т. Д.), –

2

Не беспокоить либо сериализации или строк: просто отправить вниз пару координат как целые числа. Вы можете использовать BitConverter для преобразования целых чисел в байты - или просто используйте BinaryWriter для записи и BinaryReader для чтения.

Смежные вопросы