Netzwerkprogrammierung mit der BSD-Sockets API beinhaltet eine Reihe von vorformulierten Anrufen an verschiedene Betriebsfunktionen auf Systemebene jedes Mal, wenn Sie wollen, Verbindungen und Übertragung von Daten über TCP / IP-Netzwerke zu erstellen. Dieser Vorgang kann sowohl umständlich und fehleranfällig sein.
Glücklicherweise gibt es einen einfacheren Weg, Netzwerk-Anwendungen zu entwickeln. Durch das Denken in Bezug auf Design-Muster, können wir Abstraktionen für die Erstellung von Verbindungen und die Übertragung von Daten zwischen Netz Peers entwickeln, die Socket-Aufrufe in leicht einkapseln C + Klassen zu verwenden.
BSD Sockets ist eine API an die Transportschicht des Internet Protocol Stack. Es unterstützt sowohl TCP und UDP-Netzwerk-I / O zu schaffen.
Um TCP-Verbindungen auf den Server-Host Anrufe socket () zu erstellen ein Abhörsocket dann gibt die IP-Adresse und TCP-Port, auf dem der Server-Verbindungsanforderungen mit einem Anruf erhalten etablieren zu binden (). Der Aufruf listen () puts der Server in Hörmodus die dann Blöcke auf die accept () für eingehende Verbindungen warten.
Der Client verbindet sich mit dem Server von Socket () dann connect () mit einem Socket-Adresse, die IP-Adresse und TCP-Port folgende Angaben nach für die bind () Aufruf auf dem Server enthält. Auf dem Server gibt die accept () Funktion mit einem Socket-Deskriptor-Verbindung, wenn die Verbindungsanforderung des Client empfangen wird.
Nachdem der Server-Blöcke auf einen Anruf eine Verbindung zu lesen () wartet auf eine Client-Anfrage. Der Kunde Anrufe write () eine Anforderung blockiert dann auf einen Anruf zu senden für die Antwort des Servers zu lesen () wartet. Wenn der Server die Anforderung fertig bearbeitet, sendet es eine Antwort an den Client zurück. Der Austausch von Anfragen und Antworten wird wiederholt, bis der Client durchgeführt wird, zu welcher Zeit die Verbindung geschlossen wird. Der Server erkennt dieses Ereignis, wenn lesen () liefert 0. Der Server antwortet mit seinem Ende der Verbindung dann Schließen der Rückkehr eine andere Verbindung zu bekommen.
Der Destruktor schließt einfach die Verbindung.
TCPStream :: ~ TCPStream ()
Endpoint-Security 2014 Endpoint-Security-10 Produkthandbuch