Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
антон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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.002 c
2-1298927247
antonn
2011-03-01 00:07
2011.06.05
hook ставится сервисом


2-1298526442
AltCtrlDel
2011-02-24 08:47
2011.06.05
Многоязыковое приложение. ITE не нравится


2-1298888893
bumb
2011-02-28 13:28
2011.06.05
запрос


3-1259925264
BarON21
2009-12-04 14:14
2011.06.05
Выбор значений по дате+время


1-1256039523
Fr0sT
2009-10-20 15:52
2011.06.05
Пара вопросов про Unicode





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский