Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.07;
Скачать: CL | DM;

Вниз

TServerSocket   Найти похожие ветки 

 
BAHO ©   (2002-09-06 20:51) [0]

Здрасте...
Почему тормозит в режиме stTHreadBlocking


 
BAHO ©   (2002-09-06 20:58) [1]

Это сервер

unit ServThr_Shell;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp;

type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
procedure ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyServerThread=class(TServerClientThread)
procedure ClientExecute; override;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TMyServerThread.ClientExecute;
var
MySocket:TWinSocketStream;
dest:TFileStream;
begin
dest:=TFileStream.Create("received.txt",fmOpenWrite or fmCreate);
MySocket:=TWinSocketStream.Create(ClientSocket, 20000);
try
while (not Terminated) and ClientSocket.Connected
do
begin
if MySocket.WaitForData(2000)
then
begin
if dest.CopyFrom(MySocket,1024)=0
then break;
end;
end;
finally
MySocket.Free;
ClientSocket.Close;
dest.Free;
end;end;


procedure TForm1.ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
begin
SocketThread:=TMyServerThread.Create(true,ClientSocket);
SocketThread.Priority:=tpLower;
SocketThread.Resume;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
serversocket1.Close;
end;
end.


Вот клиент

unit Clnt_Shell;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;

type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
Button1: TButton;
Button2: TButton;
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
var
src:TFileStream;
MySocket:TWinSocketStream;
begin
MySocket:=TWinSocketStream.Create(Socket,20000);
src:=TFileStream.Create("C:\autoexec.bat",fmOpenRead);
MySocket.CopyFrom(src,src.Size);
src.Free;
MySocket.Free;
clientsocket1.Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Open;
end;

end.


при посылке выдаёт ошибку Errror Stream


 
VID ©   (2002-09-06 22:32) [2]

ну так.. как режим называется, так и работает :)


 
BAHO ©   (2002-09-07 02:38) [3]

Ясно...
я стормозил:)


 
Digitman ©   (2002-09-09 16:30) [4]

а кто тебя так учил - в событии OnConnect() что-то куда-то посылать ?

готовность к передаче фиксируется фактом возникновения события OnWrite(), а оно возникает ПОСЛЕ OnConnect()

И в чем собственно "тормаза" заключаются ?



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

Текущий архив: 2002.11.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
1-21594
Maloi
2002-10-29 18:31
2002.11.07
Люди! Не подскажите, есть ли такая функция которая выдает по типу


1-21505
Miss
2002-10-29 07:13
2002.11.07
Снова поиск.


1-21582
Andrew Klochko
2002-10-29 23:49
2002.11.07
Как правильно завершить поток и...


8-21697
Sniffer
2002-07-17 10:49
2002.11.07
OpenGL, что за глюки?!!!


3-21407
Ghost-kasper
2002-10-18 14:24
2002.11.07
Экспорт и импорт данных используя Excel