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

Вниз

Создать Функцию каторая ждала сообщение от Сервера   Найти похожие ветки 

 
Amid   (2004-05-03 15:07) [0]

Создал функцию которая посылает сообшение серверу (ServerSocket) с комп. ClientSocket, как зделать так штобы это функция ждала сообшение от сервера. Но только не использовать цикл
While Boolean do Application.ProcessMessages;


 
easy ©   (2004-05-03 18:23) [1]

как зделать так штобы на эту функцию посмотреть?..


 
Evgeny V ©   (2004-05-04 06:33) [2]

событие OnRead не подходит?? Ждет когда что-то получишь, дальше дело твое, как и что обрабатывать


 
Amid   (2004-05-04 09:47) [3]

Функция CONECT работает нормально, кагда вызывая из другой програмы то показывает : есте конект или нету (1 или -1). А как зделать так чтобы функ. SEND посылает сообщение  серверу (ServerSocket) но как зделать так чтобы она и принимала сообщение от сервера (но только не используя цикл While BOOLEAN do Applica...., а то пока ждет ответ от сервера грузит комп.)

Вот иходник (easy)

//////////////////////////////
library MyDLL;

uses
 DM in "DM.pas" {DataModule1: TDataModule},
 SysUtils,
 Classes,
 Forms;

Var
   D : TDataModule1;

{$R *.res}

Function Conect(adr : String; port : Integer) : Integer; export; stdCall;
Begin{}

   TRY
     d := TDataModule1.Create(nil);
     d.Eror:=0;
     d.ClientSocket1.Address:=adr;
     d.ClientSocket1.Port:=port;
     d.ClientSocket1.Active:=True;
   Except on E: Exception do
     d.Eror:=-1;
   End;

   While d.Eror=0 do
    Begin
       Application.ProcessMessages;
    End;

   Result:=d.Eror;

End;{}

{Procedure FreeConect()export; stdCall;
Begin
 d.Free;
End;}

Function Send( Number : String ) : String; export; stdCall;
Begin{}

  d.Str_Read:="";
  D.ClientSocket1.Socket.SendText("<SEND>"+ Number);

//   While d.Str_Read="" do Application.ProcessMessages;

  result := d.Str_Read;

End;{}

Exports
 Conect, Send;
End.

/////////////////////

unit DM;

interface

uses
 SysUtils, Classes, ScktComp;

type
 TDataModule1 = class(TDataModule)

   ClientSocket1: TClientSocket;

   procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);

   procedure ClientSocket1Error(Sender: TObject; Socket :  
        TCustomWinSocket; ErrorEvent: TErrorEvent; var  
        ErrorCode: Integer);

   procedure ClientSocket1Read(Sender: TObject; Socket:
        TCustomWinSocket);

   procedure DataModuleCreate(Sender: TObject);

 private

 public

   Eror : Integer;
   Str_Read : String;

 End;

Var
 DataModule1: TDataModule1;

Implementation

{$R *.dfm}

Procedure TDataModule1.ClientSocket1Connect(Sender: TObject;
                                  Socket: TCustomWinSocket);
Begin{}
   Eror:=1;
End;{}

Procedure TDataModule1.ClientSocket1Error(Sender: TObject;
 Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
 var ErrorCode: Integer);
Begin{}

 If ErrorCode<>0 Then
  Begin
     Eror:=-1;
     ErrorCode:=0;
  End;

End;{}

Procedure TDataModule1.ClientSocket1Read(Sender: TObject;
                                 Socket: TCustomWinSocket);
Begin{}

   Str_Read:=Socket.ReceiveText;

End;{}

Procedure TDataModule1.DataModuleCreate(Sender: TObject);
Begin{}

   Str_Read:="";

End;{}

END.

///////////////


 
Polevi ©   (2004-05-04 13:05) [4]

используй блокирующий режим


 
Amid   (2004-05-05 09:25) [5]

Poveli: А как это делается ?


 
Polevi ©   (2004-05-05 09:55) [6]

cs:=TClientSocket.Create(nil);
cs.Address:="127.0.0.1";
cs.Port:=6666;
ct.ClientType:=ctBlocking;
ct.Open;
ct.SendText("Hello world !");
ShowMessage(ct.ReceiveText);


 
Amid   (2004-05-05 11:10) [7]

Спосибо



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
14-1086036446
KilkennyCat
2004-06-01 00:47
2004.06.27
Забугорная жизнь впереди.


3-1086182437
AlexanderSK
2004-06-02 17:20
2004.06.27
TClientDtatSet + TDataSource


14-1086693972
init13
2004-06-08 15:26
2004.06.27
Callback


9-1077808784
Creep
2004-02-26 18:19
2004.06.27
Как зделать игру во весь икран сандартными средствами Dolphi


1-1086932991
Creator
2004-06-11 09:49
2004.06.27
hint