Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TclientSocket [D6, WinXP]


LEONardo ©   (2004-07-02 12:31:00) 

Пожалуйста дайте дельный ответ, душа кричит! Почему в приведенном ниже случае TclientSocket не передает строку
серверу???

Program ...;
Uses ...;

var Cl:TclientSocket;

begin
CL:=TclientSocket.create(nil);
CL.address:='127.0.0.1';
CL.port:=15000;
CL.clientType:=mtNonBlocking;
CL.open; //or CL.active:=true;
//соединение произошло успешно СЕРВАК увидел нас
//(обработа  OnConnect)
CL.socket.sendText('Message From client');
CL.close;
end;


Digitman   (2004-07-02 13:23:00) [1]


> LEONardo   (02.07.04 13:10) [5]


сходи на http://book.itep.ruв раздел "Winsock"
весьма полезный ресурс для понимания происходящего в недрах TClientSocket, особенно когда исх.текст модуля scktcomp.pas открыт перед глазами


LEONardo   (2004-07-02 13:10:00) [2]

НУ лан
всем дякую


Digitman   (2004-07-02 13:09:00) [3]


> LEONardo   (02.07.04 13:04) [2]


просто установи ClientType = ctBlocking, тогда логика коннекта и према/перема передачи будет синхронная, т.е. после ClientSocket.Open коннект гарантированно осуществлен (если не было при этом возбуждено исключение), и следом можно смело вызывать методы приема/передачи


Iraizor   (2004-07-02 13:07:00) [4]

Работай в синхронном режиме - гораздо проже будет.или же, делая вывод из поста [1], могу посоветовать не сразу после открытия сокета слать текст, а в цикле отловить OnConnect и уже потом выполнять какие-либо действия.


LEONardo   (2004-07-02 13:04:00) [5]

Напиши пожалуйста, как можно обойти данную ситюєйшн?
С момента CL.port:=15000


Digitman   (2004-07-02 12:43:00) [6]


> CL.open; //or CL.active:=true;
> //соединение произошло успешно СЕРВАК увидел нас // не выдумывай, факт установления коннекта есть факт события OnConnect, а не твои домыслы
> //(обработа  OnConnect) это как так ?! событие-то - АСИНХРОННОЕ !
> CL.socket.sendText('Message From client'); // в пустоту посылаешь - коннект еще не установлен


Наверх

Титульная страница Поиск, карта сайта Написать письмо