Вниз
Скачать: CL | DM;

Что не так?   Найти похожие ветки 

← →
Cosmic ©   (2003-01-14 10:58) [0]

Есть прога:

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 11:50) [1]

Потому что у тебя программа на первой строчке падает! (если вообще компилится! проверять не хочу)
и что это за бред?
While GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;



← →
Cosmic ©   (2003-01-14 14:03) [2]

Не падает, но при коннекте ничего не делает. Лучше бы написал КАК это все сделать правильно.


← →
Digitman ©   (2003-01-14 14:43) [3]

То что "не падает" - случайность)... "Упадет" обязательно

А зачем тебе конс.приложение ? Не вижу смысла. Чем обычное не устраивает ?


← →
Bachin   (2003-01-14 16:23) [4]

я вообще-то туго себе преставляю каким образом эта
Server1.OnClientConnect := ClientConnect;
строка компилится, а если вдруг происходит сие чудо, то кто такой Server1 и куда он указывает?

первое чем займись - попытайся разобраться с принципом функционирования procedure of object
дальше разберись с классами TClientSocket & TServerSocket
ну а дальше уже переходи на АПИ...

ты же налепил кучу огрызков непонятного назначения! как я могу объяснить "что не так" если ВСЕ НЕ ТАК!

PS если хочешь приблизиться к API - возьми библиотеку ICS...
PSS кстати, там и примеры есть...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
3-87297
vladimirS
2003-02-10 06:56
2003.02.27
программный вызов isql


1-87493
Xi2
2003-02-15 23:29
2003.02.27
---|Ветка была без названия|---


4-87738
OxOTHuK
2003-01-12 11:59
2003.02.27
Список процессов


9-87234
Гуляющий просто так
2002-09-20 14:30
2003.02.27
DirectX


4-87749
markers
2003-01-14 07:41
2003.02.27
Как сделать недоступной форму?




   Наверх