Форум: "Сети";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
Внизpomoghite gde tut oshibka Найти похожие ветки
← →
krimer (2001-11-10 17:52) [0]S> hI
S> please pomoghite!!!
S> u mnea tut problema s obrabotkoi sobitii i problema s
S> ServerSocket.ClientRead := MyObject.ClientRead; daiot oshibku please
S> podkoriktiruite chto u menea tut ne tak, blin nikto tolkom ne skazal
S> chto tut ne tak!
S> spasibo zaranee
S> program sturm;
S> {$APPTYPE CONSOLE}
S> uses
S> SysUtils,
S> ScktComp;
S> type
S> TMyObject = class
S> public
S> procedure OnClientConnect(Sender: TObject; Socket: TCustomWinSocket);
S> procedure ClientRead(Sender: TObject; Socket: TCustomWinSocket);
S> end;
S> var
S> ServerSocket : TServerSocket;
S> MyObject: TMyObject;
S> procedure TMyObject.OnClientConnect(Sender: TObject; Socket: TCustomWinSocket);
S> var
S> i: integer;
S> begin
S> WriteLn("Client connect " + Socket.RemoteAddress + ":" + IntToStr(Socket.RemotePort));
S> {Посылаем ВСЕМ клиентам сообщение из Edit1}
S> for i := 0 to ServerSocket.Socket.ActiveConnections-1 do begin
S> ServerSocket.Socket.Connections[i].SendText("+OK Sturm.NET Server v0.1 ready <" + "localhost" + ">");
S> end;
S> end;
S> procedure TMyObject.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
S> begin
S> WriteLn("Client message " +Socket.ReceiveText);
S> end;
S> begin
S> ServerSocket := TServerSocket.Create(nil); // создаем объект - серверное гнездо
S> ServerSocket.Port := 4567; // порт задан "от фонаря" !!
S> ServerSocket.ServerType := stNonBlocking; // для простоты - неблокирующий режим
S> MyObject := TMyObject.Create; // создаем объект - обработчик событий серв.гнезда
S> ServerSocket.OnClientConnect := MyObject.OnClientConnect; // назначаем обработчик на подключение ублюдка
S> ServerSocket.ClientRead := MyObject.ClientRead; // назначаем обработчик на прием месаг ублюдка
S> WriteLn("Sturm.NET Server v0.1");
S> try
S> ServerSocket.Active := True; // старт серв.гнезда
S> ServerSocket.Active := False; // halt
S> while not Application.Terminated do begin
S> Application.ProcessMessages; // process messages in the message queue
S> Sleep(10); // don"t use 100% CPU
S> end;
S> finally
S> ServerSocket.Free; // разрушаем серв.гнездо
S> MyObject.Free; // разрушаем объект-обработчик
S> end;
S> end.
← →
kravt (2001-11-10 21:22) [1]1.Добавить в uses ..,Forms,..
2.Вместо
> ServerSocket.ClientRead := MyObject.ClientRead;
cделать
ServerSocket.OnClientRead := MyObject.ClientRead;
3. И закомментировать
ServerSocket.Active := False
Удачи. Александр.
← →
krimer (2001-11-11 13:48) [2]spasibo
← →
Digitman (2001-11-12 14:00) [3]>kravt
"1.Добавить в uses ..,Forms,.." - это еще зачем ?
← →
Digitman (2001-11-12 14:08) [4]>krimer
1.Как только ты задействуешь модуль Forms, ты потеряешь многие из преимуществ консольного приложения.
2.
S> while not Application.Terminated do begin
S> Application.ProcessMessages; // process messages in the message queue
S> Sleep(10); // don"t use 100% CPU
S> end;
Это зачем ? TServerSocket создает собственное окно и обрабатывает сообщения самостоятельно
← →
krimer (2001-11-14 14:30) [5]nu narod daite delinii sovet! atgo uje zadolbalsea!!!
please!!
← →
Digitman (2001-11-15 09:06) [6]>krimer
Тебе уже дали дельный совет ! Что еще-то хочешь ?
...
try
ServerSocket.Active := True; // старт сервера
ReadLn; // ждем нажатия <ENTER>, чтобы завершить работу сервера
ServerSocket.Active := False; // стоп сервера
finally
ServerSocket.Free;
MyObject.Free;
end;
...
← →
krimer (2001-11-16 20:49) [7]tak blin ne pashet ono k serveru konektitsea a vot v okne servake nifiga ne pishetsea a mnogie mne govoreat chto readln ne obrabativaet sobitie popitaitesi eto otkompiliropvati tak ono ne budet ispolneat postavleanie pered nim zadachi
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.02.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c