На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU
  
> CAsyncSocket , проблема
    Здравствуйте.
    Возможно, кто-то сталкивался с подобной проблемой.
    Я делаю реализацию POP3 под PocketPC 2002. Для чего использую асинхронный сокет - класс CAsyncSocket.
    Метод Connect( ServerName, 110 ) возвращает отсутствие ошибки и больше не происходит ничего !!! Хотя должен вызываться callback сокета OnConnect() не говоря уже об ответах сервера...
    Сеть настроена, встроенный почтовый клиент на девайсе ходит на тот же сервер. Полный аналог на PC работает на ура.
    В чем дело ?
    ...............
    Добавлено:
    Нашел, что нужно использовать вместо CAsyncSocket класс CCeSocket, но эффект тот же.
    Сообщение отредактировано: vadim_vk -
      А эти классы работают через WS2 или через WS1.1? Вообще рабту с сетью лучше конечно делать на WSA интерфейсе.
      А ты уверене что сеть у тебя правильно настроена?
        Все. Вопрос снят.
        Сеть настроена правильно.
        Я ожидал, что после Connect() вызовется OnConnect(). Почему-то этого не происходит,
        а вызывается сразу OnReceive() с ответом сервера. Почему нет OnConnect - непонятно.
        Но уже не особо важно, сервер отвечает.
        Не знаю, честно говоря, какая версия сокетов у этих функций.
        Почему нужно работать через WSA ? Что это и почему хорошо ? Нет ли ссылок на статьи по этому поводу и вообще про работу с сетью из под CE ?
          Цитата vadim_vk @ 23.06.04, 12:15
          Почему нужно работать через WSA ?

          С WSA* в CE лучше не работать (ИМХО). Т.к. в CE не все WSA* функции поддерживаются вот пример (из MSDN'а к 6-ой студии):
          Цитата
          WSAEventSelect
          ....
          Windows NT: Yes
          Windows: Yes
          Windows CE: Unsupported.
          Header: Declared in winsock2.h.
          Import Library: Link with ws2_32.lib.


          Цитата
          WSAIoctl
          ...
          Windows NT: Yes
          Windows: Yes
          Windows CE: Unsupported.
          Header: Declared in winsock2.h.
          Import Library: Link with ws2_32.lib.


          Так что тут надо быть осторожным.
          Хотя в eVC 4.0 эти функции есть (в eVC 3.0 их нет)
            CE отстой, если хотите лешить функциональности и совместимости ваше устройство поставте на него CE.
            Сообщение отредактировано: Oksiv -
              Гм, тебя не смущает, что тут форум по WinCE? :) Т.е. даже если это и отстой... тут задаются вопросы по WinCE (см. название форума)
              Цитата
              Форум на Исходниках.Ru
              Системы, Сети, Технологии
              Windows CE


              Кстати, а что ты вкладываешь в слово "функциональность"?
              Сообщение отредактировано: Fester -
                Ну ща начнёться флейм, :) , вот списочек того что не может CE в PocketPC и что может к примеру Familiar Linux:

                - нормальная сеть, через USB адаптер к примеру.
                - плохо продуман интерфейс, попытка перенести полностью Windows интерфейс, к примеру чтоб до батарей
                добраться надо пальцы сломать.
                - спустя 6 лет MS наконец-то научилась разварачивать экран на 90 градусов + заточенность
                на расширение экрана.
                - отсуствие совместимости с предыдущими версиями
                - отсуствия нормального ПО в поставке то что есть отстой и не надо говрить что Pocket Word и т.д
                рулят , ибо для PPC это просто смешно.
                  Цитата Oksiv @ 28.06.04, 13:02
                  - нормальная сеть, через USB адаптер к примеру.

                  Что есть "нормальная сеть"? Если мне нужна сеть, то я пользуюсь WLAN или BlueTooth. USB используется исключительно для перетаскивания файлов с PC на КПК и в редких случаях для дебага (очень медленно).

                  Цитата Oksiv @ 28.06.04, 13:02
                  - плохо продуман интерфейс, попытка перенести полностью Windows интерфейс, к примеру чтоб до батарей добраться надо пальцы сломать.

                  Не понял... :rolleyes: Чем отличается путь до батарей от пути к другим настройкам? Что-то я тут не понял :blink:

                  Цитата Oksiv @ 28.06.04, 13:02
                  - спустя 6 лет MS наконец-то научилась разварачивать экран на 90 градусов + заточенность на расширение экрана.

                  Ну вообще-то нужность этой фичи я бы поставил под сомнение... кроме того, видел один аппарат, где после нескольких переворациваний слетала калибровка... при этом слетала насколько основательно, что только cold reset помогал. Впрочем не думаю, что это была проблема MS, скорее производителя аппарата.

                  Цитата Oksiv @ 28.06.04, 13:02
                  - отсуствие совместимости с предыдущими версиями

                  Тут ничего сказать не могу... *.exe не запускал на разных версиях CE'ев... (просто в силу того, что на разных CE'ях разные процессоры, поэтому приходилось перекомпилировать) Однако проблем с переносов кода с CE 3.0 на CE 4.1 не было.

                  Цитата Oksiv @ 28.06.04, 13:02
                  - отсуствия нормального ПО в поставке то что есть отстой и не надо говрить что Pocket Word и т.д рулят , ибо для PPC это просто смешно.

                  Ну единственно чего мне иногда нехватает - это Notepad'а :wacko: (ну там логи посмотреть или созраненные данные). Читать книги на КПК считаю высчей мерой изврата, т.к. листать будешь больше чем читать (в силу малого размера экрана).
                    Дабы не устраивать флейм скажу умеренно, notepad есть в total commander для PocketPC :)
                      Цитата vadim_vk @ 23.06.04, 12:59
                      Здравствуйте.
                      Возможно, кто-то сталкивался с подобной проблемой.
                      Я делаю реализацию POP3 под PocketPC 2002. Для чего использую асинхронный сокет - класс CAsyncSocket.
                      Метод Connect( ServerName, 110 ) возвращает отсутствие ошибки и больше не происходит ничего !!! Хотя должен вызываться callback сокета OnConnect() не говоря уже об ответах сервера...
                      Сеть настроена, встроенный почтовый клиент на девайсе ходит на тот же сервер. Полный аналог на PC работает на ура.
                      В чем дело ?
                      ...............
                      Добавлено:
                      Нашел, что нужно использовать вместо CAsyncSocket класс CCeSocket, но эффект тот же.

                      OnConnect на сколько я знаю сам невызываеться !
                      Его надо проинициализировати иными словами сказать что при OnConnect вызывать callback функцию
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0280 ]   [ 16 queries used ]   [ Generated: 23.04.24, 21:36 GMT ]