Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.06.05;
Скачать: CL | DM;

Вниз

Проблема со склейкой пакетов   Найти похожие ветки 

 
антон1243232   (2009-03-25 12:14) [0]

Всем привет

Есть Клиент серверное приложение.
При событии OnformMouseMove ClientSocket шлёт серверу строку
с координатами мыши 1024,23.
Сервер при событии OnClientRead разбивает строку на
x=1024
y=23
и вызывает процедуру
SetCursorPos(x,y)

Все вродебы работает, но работает не так как бы хотелось.
Если быстро перемещать мышь на форме то получается так что склеиваются пакеты и мы имеем строку не 1024,23 а
1024,231024,231024,231024,231024,23
1024,231024,231024,231024,231024,23
1024,231024,231024,231024,231024,23
что-то типа этого.
Из того что пришло мне в голову решил делить эти пакеты если они склеены.
Т.е в конце отправляемой строки добавлял |
получал 1024,23|1024,23|1024,23|1024,23|1024,23|1024,23|
1024,23|1024,23|1024,23|1024,23|
дальше на стороне сервера парсил полученый результат и всё работает но блин обять не так как надо...
Теперь при перемещении мыши она на другом десктоме перемещается медлено...т.е рывками..
Посдкажите у кого какие идеи может кто-то сталкивался с такой проблемой....
Спасибо дорогие господа!


 
Сергей М. ©   (2009-03-25 12:26) [1]

The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured.


 
FireMan_Alexey ©   (2009-03-25 12:44) [2]

MousePacket=Packed Record
 X:Word;
 Y:Word;
End;

и не надо парсить :)


 
Slym ©   (2009-03-25 13:12) [3]

антон1243232   (25.03.09 12:14)
склеиваются пакеты

природа такая у сокетов

антон1243232   (25.03.09 12:14)
перемещается медлено...т.е рывками..

медленно парсиЩъ...
протокол мля...
если пришло несколько координат - пользуй только последнюю


 
FireMan_Alexey ©   (2009-03-25 13:13) [4]

Тогда дискретность повысится, а он синусоиду хочет :)


 
brother ©   (2009-03-25 13:15) [5]

или [3] или отсылай только последнюю координату + [2] учти


 
Сергей М. ©   (2009-03-25 13:17) [6]


> FireMan_Alexey ©   (25.03.09 12:44) [2]


> и не надо парсить


"Надо, Федя, надо .." (С)

Он же в OnRead все без разбору выгребает из вх.очереди)


 
Slym ©   (2009-03-25 13:19) [7]

типа Radmina самопального пишешь?


 
brother ©   (2009-03-25 13:19) [8]

зато парность теперь парсить не надо)


 
FireMan_Alexey ©   (2009-03-25 13:24) [9]

Как я написал в [2] пересылать координаты строками, большая расточительность!

К примеру, по твоему алгоритму, координаты (1023,767) будут выглядеть так:

|1023,767| =>9 байт не постоянной длины
а в моем случае пакет имеет постоянную длину 4 байта и парсить особенно не надо. Надо только контролировать на кратность 4-рем пришедших данных :)
тем более что WORD имеет диапазон 0..65535 т.е. полная совместимость получиться и HD разрешениями :).
И еще ты не сказал, как ты снимаешь координаты с клиентской стороны?!
Если ты просто на таймер впиндюрил GetCursorPos, то соответсвенно оно так и будет работать как ты описал...



Страницы: 1 вся ветка

Текущий архив: 2011.06.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1297940356
***
2011-02-17 13:59
2011.06.05
«Яндекс» и «Касперский» вошли в топ самых инновационных компаний


2-1298780760
filimonic
2011-02-27 07:26
2011.06.05
Как заблокировать кнопку Пуск в Windows 7


15-1297937141
Ламот
2011-02-17 13:05
2011.06.05
Звонки с диалапмодема...


10-1175163652
Scoba
2007-03-29 14:20
2011.06.05
Программная прокрутка


1-1256550327
Ragazor
2009-10-26 12:45
2011.06.05
Конверт string в resourcestring