Показать сообщение отдельно
Старый 03.10.2014, 00:24   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: TCP\IP клиент-сервер загвоздка

Можно попробовать размазать опрос по времени, внеся правку: читать полученные сообщение не "пока не прочитан PACK целиком", а "N байт и выходить из обработки". Но такая асинхронность выйдет боком: код запутается и станет скорее изыском, лучше, конечно, запилить асинхронность на потоках. Например (при неимении возможности поступить как советует moka), написать dll на чём-то многопоточность поддерживающем, и либо общаться через блокирующие blitz-прогу функции (ЕстьЛиГотовыйПак(), ПролучитьЗагурженныйПак()), либо через общий буфер (число, возвращаемое CreateBank - реальный адрес памяти, который можно использовать в DLL), имеющий маркер (изменяемый атомарно) для управления синхронизацией ("пакет готов","ожидаю следующий пакет") и область под тело пакета.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ILonion (03.10.2014)