Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2017.03.05;
Скачать: [xml.tar.bz2];

Вниз

Connected = False, а передача данных происходит !?   Найти похожие ветки 

 
Alik   (2010-08-30 12:56) [0]

Добрый день,

Не могу понять в чем тут дело - я осуществляю TcpClient.Connect, после которого свойство Connected = False, но передача данных в обе стороны идет.
Работаю в неблокирующем режиме.
На другом конце стоит Линукс. Канал связи - интернет.


 
Anatoly Podgoretsky ©   (2010-08-30 13:46) [1]

> Alik  (30.08.2010 12:56:00)  [0]

Ты справку то читаешь или нет?

To close a socket, use the Close method.


 
Alik   (2010-08-30 14:14) [2]

Наверное я так не сформулировал проблему:
Мне нужно подключиться к серверу и после того как св-во TCPCLient.Connected установится в True, я по идее смогу обмениваться данными.

В реальности, после запуска метода Connect, св-во Connected остается в значении False, я "закрываю глаза" на это дело и в наглую передаю и получаю информацию.

По какой причине такое расхождение?


 
Alik   (2010-08-30 14:15) [3]

Наверное я не так не сформулировал проблему:
Мне нужно подключиться к серверу и после того как св-во TCPCLient.Connected установится в True, я по идее смогу обмениваться данными.

В реальности, после запуска метода Connect, св-во Connected остается в значении False, я "закрываю глаза" на это дело и в наглую передаю и получаю информацию.

По какой причине такое расхождение?


 
Alik   (2010-08-30 14:15) [4]

Сорри!

Наверное я не так сформулировал проблему:
Мне нужно подключиться к серверу и после того как св-во TCPCLient.Connected установится в True, я по идее смогу обмениваться данными.

В реальности, после запуска метода Connect, св-во Connected остается в значении False, я "закрываю глаза" на это дело и в наглую передаю и получаю информацию.

По какой причине такое расхождение?


 
Медвежонок Пятачок ©   (2010-08-30 15:05) [5]

видимо потому что коннект - это асинхронный метод


 
Сергей М. ©   (2010-08-30 15:12) [6]


> св-во Connected остается в значении False, я "закрываю глаза"
> на это дело и в наглую передаю и получаю информацию


А вот наглеть в асинхронном неблок.режиме нельзя.
Рано или поздно наглость будет наказана неработоспособностью программы в "боевых" условиях.
Прием или передача должны начинаться не позже установки флага WriteReady при сброшенном флаге ExceptFlag. Флаги устанавливает  и сбрасывает метод Select


 
Alik   (2010-08-30 15:56) [7]


> Сергей М. ©   (30.08.10 15:12) [6]


Спасибо!
Делаю так:

   with TcpPort, Client do begin
        Active := True;
        Select(@ReadReady, @WriteReady, @ExceptFlag, TimeOut);
        // ReadReady - Ïîðò îòêðûò äëÿ ÷òåíèÿ
        // WriteReady - Ïîðò îòêðûò äëÿ çàïèñè
        // ExceptFlag - Ïîðò íåäîñòóïåí
        if ExceptFlag then //Åñëè ïîðò îòêðûò
           begin
           Active := False;
           OutErrorMessage(F_Radar.Handle, errorSERVER_CONNECTION, False);
           Exit;
           end;
        end;

Сейчас все контролируется, единственное что еще для меня не ясно как собирать файл большого размера, если он передается по кусочкам?

Нужно тупо следить за количеством принятых байт в событии OnReceive или не все так просто?


 
Сергей М. ©   (2010-08-30 16:03) [8]

Проще некуда.
На то OnReceive и предназначено.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2017.03.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.001 c
2-1435321941
TheEd
2015-06-26 15:32
2017.03.05
Не работает DataSet.Refresh, или можно ли обойтись без CloseOpen?


15-1458293246
DayGaykin
2016-03-18 12:27
2017.03.05
VCL для веб


15-1458310315
ВладОшин
2016-03-18 17:11
2017.03.05
Архиватор 7z, извлечение в cmd, пустые папки


15-1458419671
Kilkennycat
2016-03-19 23:34
2017.03.05
час земли


2-1435261914
Drowsy
2015-06-25 22:51
2017.03.05
Какие явные признаки, что заплатка Delphi 6 Update 2 установлена?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский