Vielleicht waren Sie von den leistungsstarken Funktionen und der fortschrittlichen Technologie von Internet-Anwendungssoftware wie dem IE-Browser von Microsoft beeindruckt. Vielleicht sind Sie noch nicht in der Lage, ein so komplexes Großsystem zu entwickeln, aber keine Sorge, hier kann Ihnen eine Chance gegeben werden Zum Üben geht es darum, den Umgang mit Delphis Winsocket zum Schreiben von TCP/IP-basierten Anwendungen zu erlernen. Es wird davon ausgegangen, dass Sie bereits mit Delphi-Entwicklungstools vertraut sind.
Wir können uns vorstellen, dass Sie, wenn Sie von Anfang an ein Programm für die Kommunikation mit einem Remote-Computer schreiben, über umfassende Kenntnisse und Beherrschung der relevanten Netzwerkprotokolle, grundlegende Kenntnisse des Systems sowie der Netzwerksoftware- und -hardwaretechnologie verfügen müssen kann nur in kurzer Zeit erreicht werden. Für die meisten Menschen ist dies keine leichte Aufgabe.
Glücklicherweise stellt uns die Netzwerkkomponentenbibliothek von Delphi Komponenten zur Implementierung der Netzwerkkommunikation zur Verfügung, die die komplexen Implementierungsdetails kapseln. Mit den Komponenten ClientSocket und ServerSocket können wir ganz einfach unsere eigenen Netzwerkkommunikations- und Ressourcenfreigabeprogramme schreiben.
Die Schritte zum Schreiben von Winsocket-Programmen in Delphi 4.0 sind wie folgt:
1) Eigenschafteneinstellungen der Winsocket-Komponente;
2) Stellen Sie eine Verbindung mit dem Remote-Computer her.
3) Datenübertragung zwischen Computern;
Diese drei Schritte werden im Folgenden ausführlich erläutert.
eins. Festlegen von Winsocket-Eigenschaften
In Delphi 4.0 ist Winsocket in zwei Komponenten unterteilt: ClientSocket und ServerSocket. Sie dienen als clientseitige bzw. serverseitige Komponenten. Das heißt, die ClientSocket-Komponente wird im Client-Programm und die ServerSocket-Komponente auf der Serverseite verwendet. Durch die Kommunikation zwischen diesen beiden Komponenten, gekoppelt mit Hilfsanwendungscode, kann ein einfaches Kommunikationsprogramm implementiert werden. Wenn ServerSocket in das Client-Programm eingeführt wird, kann das Client-Programm natürlich als Server fungieren und auf Anfragen anderer Client-Programme reagieren.
Wenn Sie ein serverseitiges Programm schreiben, müssen Sie die Port-Eigenschaft der ServerSocket-Komponente festlegen. Der Grund für die Festlegung dieses Parameters liegt darin, dass möglicherweise mehrere Serverprogramme auf demselben Computer ausgeführt werden und diese möglicherweise ständig Verbindungsanforderungen von Remote-Clientprogrammen annehmen. Wenn Sie versuchen, eine E-Mail zu senden, und das System Ihre Anfrage mit einem anderen Serverprogramm verbindet, wird Ihre E-Mail mit Sicherheit nicht ordnungsgemäß gesendet. Daher muss für die ServerSocket-Komponente im Serverprogramm eine passende Portnummer Port eingestellt werden. Sie können auch das Service-Attribut festlegen, das die Art des von ServerSocket bereitgestellten Dienstes angibt, z. B. FTP, HTTP usw. Setzen Sie dann die Active-Eigenschaft auf True.
Wenn Sie ein Clientprogramm schreiben, gibt es weitere Eigenschaften zum Festlegen der ClientServer-Komponente. Das Port-Attribut sollte so eingestellt werden, dass es mit dem Wert des Port-Attributs auf der Serverseite übereinstimmt. Darüber hinaus muss die Host-Eigenschaft korrekt festgelegt werden. Es handelt sich um eine schreibgeschützte Eigenschaft, die zur Entwurfszeit nicht verfügbar ist. Es gibt den Hostnamen des Remote-Servers an, mit dem das Client-Programm eine Verbindung herstellen möchte. Sie können auch das Adressattribut festlegen, bei dem es sich um die IP-Adresse des Remote-Hosts handelt. Wenn beide Attribute festgelegt sind, verwendet das System das Host-Attribut und die durch das Adressattribut festgelegte IP-Adresse wird ungültig.
zwei. Stellen Sie eine Verbindung zu einem Remote-Computer her
Um Daten zwischen entfernten Computersystemen zu übertragen, muss zunächst eine Verbindung zwischen den beiden kommunizierenden Hosts hergestellt werden.
Die ServerSocket-Komponente auf der Serverseite ruft die Open-Methode auf, um die Socket-Verbindung zu initialisieren. Gleichzeitig setzt sie das Active-Attribut auf True, versetzt die ServerSocket-Komponente in den Überwachungsmodus und erkennt, ob zu irgendeinem Zeitpunkt eine Verbindungsanforderung vorliegt.
Wenn der Server die Verbindungsanforderung vom Client-Programm akzeptiert, wird das OnAccept-Ereignis ausgelöst. Der folgende Code muss das Serverprogramm nach dem Akzeptieren der Verbindung ausführen.
PROcedure Myform..ServerSocketAccept(Sender: TObject, Socket: TCustomWinSocket);
beginnen
IsServer := True;
Ende;
Im Client-Programm legt die ClientSocket-Komponente erforderliche Eigenschaften wie Port und Host fest und setzt dann die Active-Eigenschaft auf True, um eine Verbindungsanforderung zu stellen.
drei. Datenübertragung zwischen Computern
Sobald der Server die Verbindungsanfrage vom Client akzeptiert, kann der Client Daten senden. Zu diesem Zeitpunkt gibt es einen Socket zwischen dem Client und dem Server, und die Kommunikation erfolgt über diesen Socket. Daher ist das Socket-Attribut sehr wichtig und verfügt über viele Methoden, mit denen Sie Daten senden und empfangen können.
Die Clientseite verwendet das folgende Formular: ClientSocket1.socket.sendtext('string you want to send');
Auf der Serverseite hat es die folgende Form: ServerSocket1.socket.recievetext(str: string); Diese Funktion gibt die Länge des empfangenen Strings zurück und speichert den String in der Variablen str.
Das Obige ist das einfachste Beispiel für die Datenübertragung. Sie können auch andere von der Socket-Eigenschaft bereitgestellte Methoden verwenden, um eine komplexe Datenübertragung zu implementieren.
Obwohl es sehr praktisch ist, die Winsocket-Komponente in Delphi 4.0 zu verwenden, müssen Sie die Hilfedateien und Beispielprogramme sorgfältig lesen, wenn Sie sie wirklich zum Entwickeln von Netzwerkanwendungen verwenden möchten. Vergleichen Sie die Vorteile dieser Methode beim kontinuierlichen Lernen, beherrschen Sie ihre Programmierfunktionen und beherrschen Sie dann die Programmierkenntnisse anderer in Delphi bereitgestellter Netzwerkkomponenten wie NMPOP3, NMUDP, NMFTP usw. Bis dahin haben Sie die Möglichkeit, an der Entwicklung echter Netzwerkanwendungen mitzuwirken, anstatt nur die Netzwerkanwendungssoftware anderer Leute zu nehmen, sie einzurichten und geschickt zu bedienen.