Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизДинамическое создание компонента Найти похожие ветки
← →
Vilux © (2004-03-13 14:35) [0]Есть следующий код, создаем наследника TClientSocket и назначаем свое событие OnConnect. При запуске этот сокет соединяется с другим адресом по порту 333, но при этом процедура TSock.SNPPConnect не вызывается. В чем ошибка?
program test;
uses
ScktComp;
type
TSock=class(TClientSocket)
public
procedure SNPPConnect(Sender: TObject; Socket: TCustomWinSocket);
end;
{$R *.res}
procedure TSock.SNPPConnect(Sender: TObject; Socket: TCustomWinSocket);
var i:integer;
begin
socket.Close;
i:=10;
end;
var snpp:TSock;
begin
snpp:=TSock.Create(nil);
snpp.OnError:=snpp.SNPPError;
snpp.OnConnect:=snpp.SNPPConnect;
snpp.Address:="192.168.0.1";
snpp.Port:=333;
snpp.ClientType:=ctNonBlocking;
snpp.Open;
end.
← →
Digitman © (2004-03-13 15:46) [1]
> При запуске этот сокет соединяется
значит, не соединяется
при успешном установлении соединения будет вызван обработчик OnConnect, при неуспешной попытке установления соединения - обработчик OnError... третьего не дано
← →
Vilux © (2004-03-13 16:26) [2]Я написал параллельно прогу с TServerClient и сделал, чтобы она выдавала, когда происходит коннект с клиентом. Так вот коннект происходит, но событие не вызывается :(
← →
Digitman © (2004-03-13 16:32) [3]
> событие не вызывается
как ты определил ? ты брейкпойнт ставил в тело обработчика или каким образом ?
procedure TSock.SNPPConnect(Sender: TObject; Socket: TCustomWinSocket);
var i:integer;
begin
socket.Close; <-- здесь ставишь брейкпойнт ?
i:=10;
end;
← →
Vilux © (2004-03-13 17:31) [4]Да, именно там ставлю брейкпоинт, и еще добавил туда showmessage, но ни бреэйкпоинт не срабатывает, ни мессага не выскакивает.Сервер пишет, что соединение с клиентом произошло и не разорвано, а оно должно тут же разорваться.
← →
Vilux © (2004-03-13 17:55) [5]Выявил следующий факт, если соединени сделать блокирующим, то все работает как надо... теперь вопрос, как сделать, чтобы оно работали и при неблокирущем соединении? Написал нижеприведеный код, но до строчки с ShowMessage("Connected") так и не доходит... хотя сервер пишет, что коннект произошел
var snpp:TSock;
begin
snpp:=TSock.Create(nil);
snpp.Address:="192.168.0.1";
snpp.Port:=333;
snpp.ClientType:=ctNonBlocking;
snpp.OnConnect:=snpp.SNPPConnect;
snpp.Open;
repeat
until snpp.Socket.Connected;
showmessage("Connected...");
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c