Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.8.216] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Таймер нужен для того, чтобы запрашивать данные с сервера с нужной периодичностью. |
Сообщ.
#17
,
|
|
|
Цитата Alexei @ Таймер нужен для того, чтобы запрашивать данные с сервера с нужной периодичностью. Понятно. Я бы лучше вызывал sleep(). И никаких сообщений от таймера. Впрочем, на вкус и цвет... |
Сообщ.
#18
,
|
|
|
Цитата Oleg2004 @ Я бы лучше вызывал sleep(). Так она просто будет останавливать программу, а у меня большие планы Я попробовал WSAAsyncSelect , для wm6.1 все скомпилировалось(Гейц сам уже ничего не помнит) и так же работает и ... виснет также. |
Сообщ.
#19
,
|
|
|
Цитата Alexei @ Так она просто будет останавливать программу, а у меня большие планы Ну ну.... К сожалению вы должны смириться с мыслью, что в сетевом программировании мы сплошь и рядом имеем дело с двумя вещами - кучей буферов по дороге данных - и кучу временных задержек - в основном недетерминированных, потому как сеть оооооочень капризный файл. И ей могут быть не по нраву ваши планы... Но зачем вам таймер теперь я понял Цитата Alexei @ Я попробовал WSAAsyncSelect , для wm6.1 все скомпилировалось( Не вопрос, WSAAsyncSelect всегда входила в спецификацию Winsock 1.1 для Windows CE (а это основа всех мобильных операционок микрософта) Так что Билл не виноват... Вы бы код опубликовали ...тогда можно говорить предметно. И - точный и однозначный алгоритм взаимодействия клиент-сервер. |
Сообщ.
#20
,
|
|
|
Цитата Oleg2004 @ ей могут быть не по нраву ваши планы... Так поэтому я и выбрал UDP.Что не успело- то опоздало. Цитата Oleg2004 @ - точный и однозначный алгоритм взаимодействия клиент-сервер. Дык, в самом начале я все однозначно пожелал Цитата Alexei @ Клиент на Винмобаил каждые 20мС(желательно) шлет на сервер несколько байт. Сервер шлет ему свои несколько байт, затем подготавливает данные для следующего раза. Клиент будет только один. и, главное, чтобы клиент не вис, никогда! Пакеты могут теряться, связь пропадать, но программа должна реализовывать мои , далеко идущие ,планы. |
Сообщ.
#21
,
|
|
|
Цитата Alexei @ Дык, в самом начале я все однозначно пожелал Это на алгоритм не похоже: Цитата Alexei @ Хочу сделать следующее: Клиент на Винмобаил каждые 20 мС(желательно) шлет на сервер несколько байт. Сервер шлет ему свои несколько байт, затем подготавливает данные для следующего раза. Клиент будет только один. Смотрим по шагам: 1. Клиент на Винмобаил каждые 20 мС(желательно) шлет на сервер несколько байт. Ну и как это представляете себе? 20 мс - это обычный таймслайс для большинства операционных систем. Я не знаю на какой ОС у вас сервер, но тем не менее - вот пришли на серверный компутер первые байты. Если там куча приложений - то всем им дается интервал процессорного времени - и практически сто процентов, что серверное приложение получит эти байты через 20 мс+время по сети. На работу сервера выделяется тоже 20 мс за эти мс он должен принять, обработать и послать - а потом получит процессорное время после 100 мс или больше. А тут вы клиентиом уже 5 раз по 20 мс ему шлете свои байты... Не получается однако... Если эта схема будет работать на одной машине - и то я сомневаюсь в синхронизации процессов приема/отправки. 20 мс - это нереально... Предполагаю, что первый обмен у вас еще получится, но все последующие.... 2. Что означает - подготавливает данные..? Он знает, что вы ему на подготовку отпустили всего 20 мс? |
Сообщ.
#22
,
|
|
|
Цитата Oleg2004 @ Ну и как это представляете себе? 1.Во-первых желательно, во-вторых телефон успевает опросить,например акселерометр за это время, в-третьих ,возможно это и будет на только одном ПК. 2. Там не сложно Клиенту будет сложнее. Когда эта проблема возникнет -будем порешать... Сейчас, вот проблема- похоже WSAAsyncSelect нет в вин се |
Сообщ.
#23
,
|
|
|
Цитата Alexei @ 1.Во-первых желательно, Желательно - это не означает что есть возможность реализовать желание. К этому надо стремиться, однако... Цитата во-вторых телефон успевает опросить, например акселерометр за это время, в-третьих ,возможно это и будет на только одном ПК. Если предполагается обработка где-то в сети на одном ПК - как я писал, будут проблемы. И акселерометр??? Какая конкретно под него задача решается? Поэтому как я еще раз повторю - интервал 20 мс может? быть реален только тогда, когда обработка его производится на одной и той же машине. Если телефон отдельно а ПК - в обычной Ethernet сети отдельно, следует менять концепцию. Имхо. Это и есть - описание алгоритма... Буду рад, если вы меня опровергнете. Цитата Сейчас, вот проблема- похоже WSAAsyncSelect нет в вин се Да, я проверил - в спецификацию Winsock 1.1 WSAAsyncSelect() входит, и хотя Микрософт заверяла, что эта спецификация поддерживается Windows CE - на самом деле это не так. Это же пишет и Олунд. В результате действительно так - в мобильных системах не поддерживается, увы. |
Сообщ.
#24
,
|
|
|
Цитата Oleg2004 @ Какая конкретно под него задача решается? Пока,цифирки показываются в окошках. Акселерометр взят на вскиду, чтобы было что передать в запросе.Для опытов. Может , в другой задаче будет управлять курсором. Главное, получить от сервера 8 байт(даже , возможно 4) , их надо считать с джойстиков. В принципе, сервер может быть консольным, если это облегчит жизнь. Сейчас меня больше удручает необходимость создания потока в клиенте В нем я бы хотел поэкономить ресурсы. |
Сообщ.
#25
,
|
|
|
Цитата Alexei @ Главное, получить от сервера 8 байт(даже , возможно 4) , их надо считать с джойстиков. Ну так в чем проблема то? Значит висим на recvfrom() и все дела. Цитата Alexei @ Сейчас меня больше удручает необходимость создания потока в клиенте Теперь я снова не убежден что вам нужны потоки . UDP-клиенты вообще примитивны...впрочем как и сервера. Впрочем воля ваша... |
Сообщ.
#26
,
|
|
|
Цитата Oleg2004 @ и все дела. Сделал с WSAEventSelect без лишних потоков.Телефон(клиент) не виснет если закрыть сервер совсем, или только передачу.При "реанимации" сервера, работа вознобнавляется. |
Сообщ.
#27
,
|
|
|
Я рад что все получилось...
Ставьте пометку - Вопрос решен... |