Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
1-87382
Process Killer
2003-02-17 18:31
2003.02.27
CGI


3-87286
pochtamt
2003-02-09 19:41
2003.02.27
Таблицы FoxPro в Delphi.


14-87666
gn
2003-02-10 08:09
2003.02.27
сша обнаглело


1-87479
AGAMEMNUM
2003-02-18 08:14
2003.02.27
Помогите разобраться (OLE и COM)


1-87362
Victa
2003-02-15 22:42
2003.02.27
DCOM Events





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский