Главная страница
    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.002 c
6-1283158606
Alik
2010-08-30 12:56
2017.03.05
Connected = False, а передача данных происходит !?


15-1458634342
Игорь Шевченко
2016-03-22 11:12
2017.03.05
Нужен совет по поводу обработки большого количества почты


4-1237519553
Дмитрий
2009-03-20 06:25
2017.03.05
Аналог bitbtn для winapi


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


1-1349099238
jacksotnik
2012-10-01 17:47
2017.03.05
Вопрос по ZipMaster





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский