Sockets mit WinAPI
Programmbeispiele
Zum Schluss habe ich noch zwei schöne kleine Progrämmchen, welche alle oben beschriebenen Funktionen benutzen. Beide Programme funktionieren auf einem Computer genauso wie über ein Netzwerk.
SimpleSocket
Das Programm SimpleSocket kann je nachdem, was der Benutzer für Buttons betätigt in ein UDP-Socket, ein TCP-Client oder eben ein TCP-Server (welcher nur einen Clienten akzeptiert) eingestellt werden. Die in diesem Tutorial vorgestellten Funktionen werden adäquat durch Buttons (oder teilweise Checkboxen) umgesetzt und so kann die Funktion jedes Befehls getestet werden. Jede ausgeführte Funktion wird durch eine Messagebox angezeigt. Die Socketinformationen und –optionen werden im Programmfenster aufgelistet. Der Quellcode ist weitestgehend kommentiert.
PSocket
Mit PSocket kann man TCP-Clients oder TCP-Server in je einem Thread aus einem Programm heraus starten. Das Programm demonstriert, wie auch ein Server mehrere Clients bedienen kann. Einfach mal reinschauen. (Wobei die Einfacheit des Quellcodes etwas duch fehlende Kommentare und asynchrone Messages zwischen den Threads getrübt wird.)
Ein Gedanke zu „Sockets mit WinAPI“
Kommentare sind geschlossen.
Eine weitere – aus meiner Sicht sehr wichtige – Antwort auf die Frage, warum man die Sockets selbst über die Windows API programmieren sollte, wäre noch:
Ich hatte vor ca. 10 Jahren einen „Chat“ über die Komponenten von Delphi programmiert. Wir haben hier in der Firma einen Linux-Server zu stehen. Da die Leute das lustig fanden, ist der Chat heute fester Bestandteil. Linux bedeutet aber insoweit Probleme, weil ich das Programm emulieren lassen muss. Dafür würde sich theoretisch wine anbieten.
Der Haken ist aber, dass die Komponenten alle fest in der VCL verankert sind und man mit wine nicht weit kommt. Man braucht also eine virtuelle Maschine mit Windows, um den Server laufen zu lassen. Insoweit erhoffe ich mir, dieses Problem eventuell lösen zu können. Wenn es mir gelingt, mit dieser Anleitung eine eigene Klasse ganz ohne jede VCL erstellen zu können, dann kann ich den Server als Konsolen-Programm erstellen und (endlich) ohne den ganzen Overhead unter wine laufen lassen.
Falls den Seitenadmin dieser Kommentar stört, kann er ihn gern wieder gelöscht werden. Aber auf der Suche nach Sockets ohne VCL, wäre dies als Fund bei Suchmaschinen schon vor langer Zeit sehr hilfreich für mich gewesen. Suchmaschinen finden aber immer nur den Text, der auf den Seiten tatsächlich irgendwo steht und wenn man nach „nonvcl“ im Zusammenhang mit Sockets unter Delphi sucht, sieht es dünn aus mit den Suchergebnissen.