1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
| var
Form1: TForm1;
client:integer;
index:integer;
implementation
{$R *.dfm}
function StringtoHex(Data: string): string;
var
i, i2: Integer;
s: string;
begin
i2 := 1;
for i := 1 to Length(Data) do
begin
Inc(i2);
if i2 = 2 then
begin
s := s + ' ';
i2 := 1;
end;
s := s + IntToHex(Ord(Data[i]), 2);
end;
Result := s;
end;
procedure TForm1.opcomClick(Sender: TObject);
begin
comport1.Port:=com.Text;
comport1.Connected:=not comport1.Connected;
comport1.Connected:=true;
end;
procedure TForm1.ComPort1AfterOpen(Sender: TObject);
begin
opcom.Enabled:=false
end;
procedure TForm1.ComPort1AfterClose(Sender: TObject);
begin
opcom.Enabled:=true;
end;
procedure TForm1.opserverClick(Sender: TObject);
begin
server.Port:=strtoint(port.Text);
server.Open;
etat.caption:='server open';
etat.font.Color:=clgreen;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
comport1.Close;
end;
procedure TForm1.serverAccept(Sender: TObject; Socket: TCustomWinSocket);
begin
list.Lines.Add('accept:'+socket.RemoteAddress) ;
client:=client+1;
num.Caption:=inttostr(client);
end;
procedure TForm1.serverClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
list.Lines.Add('close:'+socket.RemoteAddress);
client:=client-1;
num.Caption:=inttostr(client);
end;
////////////
procedure TForm1.serverClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var recudata:string;
begin
if (server.Socket.ActiveConnections > 0) then
begin
index := (server.Socket.ActiveConnections-1) ;
begin
recudata:=server.Socket.Connections[index].ReceiveText;
end;
comport1.WriteStr(recudata) ;
end;
end;
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var data, chaine:string;// le traitment de la demande se fait ici dans un dongle conectet via portCom
begin
comport1.ReadStr(chaine,count);
data:=chaine;
if (server.Socket.ActiveConnections > 0) then
begin
index := (server.Socket.ActiveConnections-1 );
server.Socket.Connections[index].sendtext(data);
end;
end ; |
Partager