![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что не так? [D7, Win2k]
Cosmic © (2003-01-14 10:58:00)Есть прога:
program server;
{$APPTYPE CONSOLE}
uses
SysUtils,
ScktComp, Windows, Messages;
type
TEvents=class
procedure Accept(Sender: TObject; Socket: TCustomWinSocket);
procedure Receive(Sender: TObject; Socket: TCustomWinSocket);
procedure Connect(Sender: TObject; Socket: TCustomWinSocket);
procedure disconnect(Sender: TObject; Socket: TCustomWinSocket);
procedure error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
end;
procedure TEvents.Accept(Sender: TObject; Socket: TCustomWinSocket);
begin
writeln("client accept");
end;
procedure TEvents.Connect(Sender: TObject; Socket: TCustomWinSocket);
begin
Socket.SendText("hello");
writeln("client connect");
end;
procedure TEvents.Receive(Sender: TObject; Socket: TCustomWinSocket);
begin
writeln("client Receive");
end;
procedure TEvents.disconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
writeln("client disconect");
end;
procedure TEvents.error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
writeln("error");
end;
var
Server1 : TServerSocket;
Events:TEvents;
Mesg: TMsg;
begin
Server1.OnClientConnect := ClientConnect;
Events:=TEvents.Create;
Server1.OnClientConnect:=Events.Connect;
Server1.OnAccept:=Events.Accept;
Server1 := TServerSocket.Create( nil );
Server1.Port := 8000;
Server1.Active := True;
While GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;
Server1.free;
Events.free;
end.
По идее, при коннекте должна вывеститсь строка "client accept". Но не выводится. Что не так?
Bachin (2003-01-14 16:23:00) [1]я вообще-то туго себе преставляю каким образом эта
Server1.OnClientConnect := ClientConnect;
строка компилится, а если вдруг происходит сие чудо, то кто такой Server1 и куда он указывает?
первое чем займись - попытайся разобраться с принципом функционирования procedure of object
дальше разберись с классами TClientSocket & TServerSocket
ну а дальше уже переходи на АПИ...
ты же налепил кучу огрызков непонятного назначения! как я могу объяснить "что не так" если ВСЕ НЕ ТАК!
PS если хочешь приблизиться к API - возьми библиотеку ICS...
PSS кстати, там и примеры есть...
Digitman (2003-01-14 14:43:00) [2]То что "не падает" - случайность)... "Упадет" обязательно
А зачем тебе конс.приложение ? Не вижу смысла. Чем обычное не устраивает ?
Cosmic (2003-01-14 14:03:00) [3]Не падает, но при коннекте ничего не делает. Лучше бы написал КАК это все сделать правильно.
Bachin (2003-01-14 11:50:00) [4]Потому что у тебя программа на первой строчке падает! (если вообще компилится! проверять не хочу)
и что это за бред?
While GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;