Приложения обмениваются пакетами данных. Схематично это выглядит так: Код (Text): while() { send(socket, sizeof(request)); send(socket, request); receive(socket, response_size); receive(socket, response); } Это клиент, запрос-ответ, со стороны сервера все аналогично. То есть, отправляем размер паката, потом сам пакет. Принимающая сторона, соответственно, считывает размер, из которого и узнает, сколько занимает пакет, то есть, сколько читать. Приведенные send и receive это именно функции winsock. Существовала проблема: 5 килобайт туда-сюда гонялись 2-3 раза в секунду в реальном приложении. В тестовом приложении - сотни раз в секунду. В итоге выяснилось, в чем дело. Если отправлять пакет в два вызова send (размер и самы данные), то в секунду удавалось сделать 2-3 запроса. Если же все предварительно складывать в один буффер (и размер, и самы данные) и отправлять данные за один вызов send, то проблем нет - в секунду идут сотни запросов. Вопрос - с чем это связано? Уверен на 80% (судя по логам), что просос по времени возникал в момент двух send с WinCE на Win32. Кривая реализация WinCE? Более точно о конфигурации: Сервер - мой рабочий десктоп, атлон 64 3000+. Клиент - телефон, подключенный к серверу по USB. На клиенте Windows Mobile 6. Сеть между ними, если не ошибаюсь, возникает под руководством Microsoft ActiveSync, или чего-то из ее утилит. PS. Проблема не в организации сети. Аналогичная х-е-р-н-я возникает при работе в живую через инет по EDGE. edit: нет, а я хочу именно это слово! ))