Показать сообщение отдельно
Старый 24.02.2010, 23:53   #1
Roman_V
Оператор ЭВМ
 
Регистрация: 24.02.2010
Сообщений: 29
Написано одно полезное сообщение
Сокет очень тормозит

Привет! Подсел на Midletpascal 4 дня назад. Интересная вещь! Но дело в следующем. В сокете! Использую пример и библиотеку lib_socket с этого сайта. Мне надо отправить на сервер 5 байт и получить от него 128 байт. В эмуляторе все хорошо. В телефоне открытие сокета занимает 15-20 секунд. Потом посылка 5 байт и прием 128 байт происходят очень быстро. около секунды. Я это вижу по сообщениям которые вывожу на экран. То что телефон принял 128 байт я сужу по переменной socket.available. После этого я делаю перепись принятых (как я понимаю в буфер) в мой массив
i:=0;
while Socket.Available > 0 do
begin
i:=i+1;
datas[i]:= Socket.Read;
end;

И вот этот цикл длится 10 секунд!!! Потом ожидаю 10 секунд и начинаю все заново. Посылаю 5 байт. Но принимаю уже 0 байт. Опять 10 секунд жду и только теперь при послыке 5 байт мне возвращается снова 128. Через раз работает. И фиг бы с ним, но почему перепись из буфера в массив 10 секунд идет?! Ведь переменная Available говорит о том сколько доступно данных для чтения. Или я не прав? Библиотеку сокета прилагаю.
Что посоветуете? Потому что 10 секунд это вечность!
Пример прилагаю. Спасибо!
Вложения
Тип файла: rar SockTest.rar (8.2 Кб, 763 просмотров)
Тип файла: rar Lib_socket.rar (1.2 Кб, 686 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dream (03.03.2010)