Netzwerk verbunden?
Zitat von IcewarezFeststellen, ob mein Computer mit dem Netzwerk verbunden ist
Mit dieser Funktion l?sst sich ganz einfach feststellen, ob Dein Computer mit dem Netzwerk
verbunden ist.
IP-Adresse eines Hosts ermitteln
Zitat von IcewarezFolgende Procedure ermittelt die IP-Adressen eines Hosts. Dies kann z.B. ein Copmutername oder ein Domain-Name sein.
Kern der Funktion ist der Aufruf von "getHostByName", die in der "Platform SDK: Windows Sockets 2" dokumentiert ist. Dort finden sich auch relevante Fehlercodes, die die Funktion in Falle eines Fehlers zur?ckgibt.
- uses WinSock;function GetIpAddressByName(const Lines:TStrings; const AHost: String): Boolean;type PPInAddr= ^PInAddr;var WSA: TWSAData; HostInfo: PHostEnt; Addr: PPInAddr;begin Result:=False; if WSAStartUp($101, WSA) = 0 then begin try HostInfo:= getHostByName(PChar(AHost)); Result:=HostInfo<>nil; if Result then begin Addr:=Pointer(HostInfo^.h_addr_list); if (Addr<>nil) AND (Addr^<>nil) then begin Repeat Lines.Add(StrPas(inet_ntoa(Addr^^)) ) ; inc(Addr); Until Addr^=nil; end; end; finally WSACleanup; end; end;end;
Zitat von IcewarezDie Funktion gibt True zur?ck, falls der Aufruf von getHostByName erfolgreich war:
Daten zwischen zwei Rechnern austauschen
Zitat von IcewarezAlles anzeigenUm Daten zwischen zwei Rechnern zu ?bertragen, verwenden wir die zwei Komponenten TServerSocket und TClientServer, die zum Lieferumfang von Delphi geh?ren.
Wir schreiben zwei Programme: Das eine ist der Client mit der ClientSocket-Komponente, das andere der Server mit der ServerSocket-Komponente.
Verbindungsaufbau
Server:
Client:
Zitat von IcewarezBeim Server kann man den Port frei festlegen (sofern er nicht schon von anderen Programmen genutzt wird und mit der Obergrenze von ca. 65000); der Client muss als Host die Adresse des Rechners, auf dem das Serverprogramm l?uft, angeben (127.0.0.1 f?r den lokalen Rechner) und den Port, der vom Server abgeh?rt wird.
Der Server l?uft, der Client versucht, Kontakt zu ihm aufzunehmen. Der Server wartet bis er eine Nachricht erh?lt.
Nachricht senden
Client: Wir setzen auf das Client-Fenster einen Button. Ein Klick darauf soll einen Text an den Server schicken:
Zitat von IcewarezServer: Im Server m?ssen wir eine Ereignisbehandlungsroutine daf?r implementieren (OnClientRead von TServerSocket):
Zitat von IcewarezDer empfangene Text wird in einem Memo ausgegeben.
Antworten
Zitat von IcewarezVerbindung trennen
Werden die Anwendungen geschlossen, sollte die Verbindung wieder getrennt werden:
Server:
Zitat von IcewarezClient: