Текущий архив: 2004.09.05;
Скачать: CL | DM;
Вниз
TclientSocket Найти похожие ветки
← →
LEONardo (2004-07-02 12:31) [0]Пожалуйста дайте дельный ответ, душа кричит! Почему в приведенном ниже случае 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 12:43) [1]
> CL.open; //or CL.active:=true;
> //соединение произошло успешно СЕРВАК увидел нас //не выдумывай, факт установления коннекта есть факт события OnConnect, а не твои домыслы
> //(обработа OnConnect) это как так ?! событие-то - АСИНХРОННОЕ !
> CL.socket.sendText("Message From client"); //в пустоту посылаешь - коннект еще не установлен
← →
LEONardo (2004-07-02 13:04) [2]Напиши пожалуйста, как можно обойти данную ситюєйшн?
С момента CL.port:=15000
← →
Iraizor © (2004-07-02 13:07) [3]Работай в синхронном режиме - гораздо проже будет.или же, делая вывод из поста [1], могу посоветовать не сразу после открытия сокета слать текст, а в цикле отловить OnConnect и уже потом выполнять какие-либо действия.
← →
Digitman © (2004-07-02 13:09) [4]
> LEONardo (02.07.04 13:04) [2]
просто установи ClientType = ctBlocking, тогда логика коннекта и према/перема передачи будет синхронная, т.е. после ClientSocket.Open коннект гарантированно осуществлен (если не было при этом возбуждено исключение), и следом можно смело вызывать методы приема/передачи
← →
LEONardo (2004-07-02 13:10) [5]НУ лан
всем дякую
← →
Digitman © (2004-07-02 13:23) [6]
> LEONardo (02.07.04 13:10) [5]
сходи на http://book.itep.ru в раздел "Winsock"
весьма полезный ресурс для понимания происходящего в недрах TClientSocket, особенно когда исх.текст модуля scktcomp.pas открыт перед глазами
Страницы: 1 вся ветка
Текущий архив: 2004.09.05;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.023 c