String mit Python-Socket senden

Zeeshan Afridi 18 August 2022
  1. Sockets in Python
  2. Integrierte Methoden zum Erreichen von Sockets in Python
  3. Client und Server in der Socket-Programmierung
  4. String mit Client-Server-Kommunikation in Python-Socket senden
String mit Python-Socket senden

In diesem Artikel behandeln wir die Sockets, integrierte Methoden in Sockets, den Server und Client und wie man eine erfolgreiche Kommunikation mit Sockets in Python erreicht. Sockets spielen die Rolle der Brücke zwischen der Server- und der Clientseite zum Empfangen und Senden von Daten.

Im Python-Code erstellen wir Sockets, und mit Hilfe von Sockets übergeben wir Strings und stellen die Verbindungen zwischen Client und Server her.

Sockets in Python

Sockets definieren sich als die Endpunkte, die zum Empfangen und Senden von Daten gebaut werden. Es gibt zwei Sockets in einem einzigen Netzwerk; Die Kombination aus einer IP-Adresse und einem Port ist in Sockets vorhanden.

Ein einzelnes Gerät hat n Sockets basierend auf den Portnummern. Für unterschiedliche Protokolle stehen verschiedene Arten von Ports zur Verfügung.

Es folgen einige Standardportnummern und ihre Protokolle.

Protokoll Beschreibung
HTTP Seine Portnummer ist 80 und seine Python-Bibliotheken sind httplib, urllib und xmlrpclib. Der HTTP-Port wird für Webseiten verwendet.
FTP Seine Portnummer ist 20 und seine Python-Bibliotheken sind ftplib und urllib. Dieser Port wird für die Dateiübertragung verwendet.
NNTP Seine Portnummer ist 119 und seine Python-Bibliothek ist nntplib. Dieser Port wird für nicht gesendete Nachrichten verwendet.
SMTP Seine Portnummer ist 25 und seine Python-Bibliothek ist smtplib. Dieser Port wird zum Versenden von E-Mails verwendet.
TELNET Seine Portnummer ist 23 und seine Python-Bibliothek ist telnetlib. Dieser Port wird für Befehlszeilen verwendet.
Pop3 Seine Portnummer ist 110 und seine Python-Bibliothek ist poplib. Dieser Port wird zum Abrufen von E-Mails verwendet.
Gopher Seine Portnummer ist 70 und seine Python-Bibliothek ist gopherlib. Dieser Port wird für die Dokumentenübertragung verwendet.

Integrierte Methoden zum Erreichen von Sockets in Python

Wir müssen das Socket-Modul oder -Framework importieren, um Sockets in Python zu erreichen. Alle diese Module bestehen aus eingebauten Methoden, die beim Erstellen von Sockets helfen und auch helfen, sich miteinander zu verbinden.

Im Folgenden sind einige robuste integrierte Methoden für Sockets aufgeführt:

  • Die Methode Socket.socket() erstellt Sockets. Es ist auf beiden Seiten erforderlich, wie auf der Client- und der Serverseite.
  • Mit Socket.accept() werden die Verbindungen angenommen. Die Methode Socket.accept() gibt ein Wertepaar wie (conn, address) zurück.
  • Socket.bind() wird verwendet, um als Parameter angegebene Adressen zu binden.
  • Socket.close() stellt dar, dass Socket geschlossen ist.
  • Mit Socket.connect() wird die als Parameter angegebene Adresse verbunden.
  • Socket.listen() wird verwendet, um Befehle im Server oder Client abzuhören.

Client und Server in der Socket-Programmierung

Im Folgenden erfahren Sie, was Client und Server bei der Socket-Programmierung bedeuten.

Klient

Der Computer oder die Software, die Informationen oder Daten vom Server empfängt, wird als Client bezeichnet. Der Client fordert Dienste vom Server an; Ein Webbrowser ist das beste Beispiel für einen Client.

Server

Ein Server ist ein Programm, Computer oder Gerät zur Verwaltung von Netzwerkressourcen. Ein Server kann dasselbe Gerät, ein lokaler Computer oder ein entfernter Computer sein.

String mit Client-Server-Kommunikation in Python-Socket senden

Wir werden zwei Dateien für die Kommunikation von Sockets in Python-Dateien erstellen – eine für die Serverseite und die andere für die Clientseite. Und es wird zwei Programme zum Verbindungsaufbau geben.

Serverseitig in Python Socket

Wir werden zuerst den serverseitigen Code erstellen. Wir werden integrierte Methoden verwenden, um den serverseitigen Code zu erstellen.

Der Code für die Serverseite lautet wie folgt.

import socket

s = socket.socket(
    socket.AF_INET, socket.SOCK_STREAM
)  # Socket will create with TCP and IP protocols
# This method will bind the sockets with server and port no
s.bind(("localhost", 9999))
s.listen(1)  # Will allow a maximum of one connection to the socket
c, addr = s.accept()  # will wait for the client to accept the connection

print("CONNECTION FROM:", str(addr))  # Will display the address of the client

c.send(
    b"HELLO, Are you enjoying programming?/Great! Keep going"
)  # Will send message to the client after encoding

msg = "Take Care.............."
c.send(msg.encode())
c.close()  # Will disconnect from the server

Ausgabe:

This connection is from: ('127.0.0.1', 50802)

Clientseitig in Python Socket

Der Client sendet die Nachricht an den Server, und der Server antwortet auf diese Nachricht. Die Clientseite verwendet auch integrierte Methoden im Code.

Auf der Clientseite erstellen wir zuerst einen Socket. Dann verbinden wir die IP-Adresse und die Portnummer des Hosts.

Code:

import socket

s = socket.socket(
    socket.AF_INET, socket.SOCK_STREAM
)  # Socket will create with TCP and, IP protocols
s.connect(("localhost", 9999))  # Will connect with the server
# Will receive the reply message string from the server at 1024 B
msg = s.recv(1024)

while msg:
    print("Received:" + msg.decode())
    msg = s.recv(1024)  # Will run as long as the message string is empty

s.close()  # Will disconnect the client

Ausgabe:

The message is Revived: HELLO, Are you enjoying programming?    Great! Keep going

The message is Revived: Take Care..............

Wenn der angegebene Code ausgeführt wird, wird eine Verbindung zwischen dem Server und dem Client aufgebaut. Und nach der Verbindung zeigt der Client-Bildschirm eine Nachricht an.

Die Nachricht lautet:

HELLO, Are you enjoying programming?    Great! Keep going

Und die andere Nachricht wird sein:

Take Care..............

Diese Nachricht wird auf der Clientseite angezeigt, da sie von der Serverseite gesendet wurde. Auf diese Weise wird der Code ausgeführt und gibt eine Ausgabe zum Senden von Zeichenfolgen über Sockets in Python aus.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - Python Socket