![]() |
Delphianwendungen verbinden
Hallo Zusammen,
ich wollte mal nachfragen ob es eine einfache Möglichkeit gibt 2 Anwendungen (programmiert in Delphi 7 Pro)die auf 2 verschiedenen Rechner laufen zu verbinden. Es wird in der einen Anwendung etwas eingelesen (Barcode) und soll über das Netzwerk auf einem anderen Rechner abgelegt werden. Vielen Dank im Voraus juezi |
Re: Delphianwendungen verbinden
Ja natürlich z.B. mit Sockets.
|
Re: Delphianwendungen verbinden
Hallo,
zuerst danke für die schnelle Antwort, kann ich bei diesen Sockets auf dem einen Rechner einen SocketServer laufen lassen der immer wieder abfragt ob der Client schon da ist und wenn ja eine bleibende Verbindung aufbauen? Danke juezi |
Re: Delphianwendungen verbinden
Normalerweise wendet sich der Clienzt an den Server und nicht umgekehrt.
Was meinst du mit abgelegt? |
Re: Delphianwendungen verbinden
Hallo,
mit ablegen meine ich das an einem Rechner 2 Barcodes eingescannt werden, diese beiden Barcodes werden dann mit einer Datenbank verglichen und wenn diese beiden Barcodes zusammenpassen, sende ich die beiden Barcodes an einen anderen Rechner. Von diesem anderen Rechner aus gebe ich dann eine Freigabe an eine Produktionsanlage. Danke |
Re: Delphianwendungen verbinden
Dann würde ich den Server auf dem Rechner der die Freigabe ergibt einrichten. Der Cleint wendet sich dann bei Bedarf an den Server.
|
Re: Delphianwendungen verbinden
kann ich vom Server auch Text an den Client senden oder geht das nur in die Richtung des Servers.
Danke |
Re: Delphianwendungen verbinden
Zitat:
|
Re: Delphianwendungen verbinden
|
Re: Delphianwendungen verbinden
Hallo,
ich hab noch eine Frage, wenn ich vom Client aus den Server abfragen ob er aktiv ist? Ich habs probiert mit
Delphi-Quellcode:
aber mein Client erkennt nicht das der Server aktiv ist, wenn ich mit einem Button
procedure TfrmClient.Timer1Timer(Sender: TObject);
begin if ServerSocket1.Active = true then begin ClientSocket1.Socket.SendText('Barcode IO'); end; end;
Delphi-Quellcode:
direkt ausführe funktioniert das, der Server erhält den String, daher denke ich das der Server aktiv ist.
ClientSocket1.Socket.SendText('Barcode IO');
Danke [edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit] |
Re: Delphianwendungen verbinden
Hallo, erstmal.
Der Client kann nix vom Server wissen, deshalb geht das so nicht. Der Client weiss aber, ob er zum Server verbunden ist. Die Abfrage muesste also demzufolge
Delphi-Quellcode:
heissen, denke ich.
if ClientSocket1.Connect(ed) then
MfG |
Re: Delphianwendungen verbinden
Zitat:
Man könnte das ungefähr so lösen:
Delphi-Quellcode:
Wenn du nur wissen willst ob der Server PC läuft, kann man das mit einem Ping herausfinden
try
ClientSocket1.Active := True; except { Ereignis, das eintretten soll, wenn Server nicht aktiv ist } end;
Delphi-Quellcode:
function Ping(IP:string; TimeOut:Cardinal):Boolean;
var hICMP : DWORD; pierWork : PICMP_ECHO_REPLY; dwSize : DWORD; Class1,Class2,Class3,Class4 : String; i,j : Byte; begin Result:=False; j:=1; for i:=1 to Length(IP) do begin if IP[i]<>'.' then begin case j of 1: Class1:=Class1+IP[i]; 2: Class2:=Class2+IP[i]; 3: Class3:=Class3+IP[i]; 4: Class4:=Class4+IP[i]; end; end else Inc(j); end; hICMP := IcmpCreateFile; if hICMP = INVALID_HANDLE_VALUE then exit; try dwSize := SizeOf(ICMP_ECHO_REPLY)+8; pierWork := AllocMem(dwSize); try if IcmpSendEcho(hICMP,MAKELONG(MAKEWORD(StrToInt(Class1), StrToInt(Class2)),MAKEWORD(StrToInt(Class3), StrToInt(Class4))),nil,0,nil,pierWork,dwSize,TimeOut) = 0 then Result:=False else Result:=True; finally FreeMem(pierWork,dwSize); end; finally IcmpCloseHandle(hIcmp); end; end; |
Re: Delphianwendungen verbinden
Hallo Zusammen,
Danke für Eure Hilfe, ich denke ich kann mit den beiden Funktionen mein Problem beheben, ich werde zuerst mit ping testen ob der andere PC überhaupt aktiv ist und dann kann ich sehen ob der Client connected ist. Vielen Dank juezi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz