2016-03-23 3 views
1

Ich implementiere derzeit einen Socket-Server mit dem SocketServer-Modul von Python. Ich habe Mühe zu verstehen, wie ein Client dem Server signalisiert, bestimmte Aufgaben auszuführen.Wie führt ein Server verschiedene Aufgaben basierend auf der Clienteingabe aus?

Wie Sie sehen können, bin ich ein Anfänger in diesem Bereich. Ich habe mir viele Tutorials angeschaut, aber diese sagen nur, wie man einzelne Aufgaben im Server ausführt, z.B. Ändere eine Nachricht vom Client und sende sie zurück.

Im Idealfall möchte ich wissen, gibt es eine Möglichkeit für den Client mit dem Server zu kommunizieren, um verschiedene Arten von Aufgaben durchzuführen.

Gibt es einen Standardansatz für dieses Problem?

Benutzt ich sogar den richtigen Servertyp?

Ich habe überlegt, eine Form der Nachrichtenübergabe vom Client zu implementieren, die dem Server mitteilt, welche Aufgabe er ausführen soll.

Antwort

1

Ich dachte über die Implementierung einer Form der Nachrichtenübergabe vom Client aus, die dem Server mitteilt, welche Aufgabe er ausführen soll.

Genau das brauchen Sie: ein Anwendungsprotokoll.

Ein Socket (unter der Annahme eines Streaming-Internet-Socket oder TCP) ist ein Strom von Bytes, nichts mehr. Um diesen Bytes eine Bedeutung zu geben, benötigen Sie ein Protokoll, das bestimmt, welches Byte (oder welche Sequenz davon) was bedeutet.

Das Hauptproblem zu behandeln ist, dass der Strom, den solch ein Sockel zur Verfügung stellt, keine Vorstellung von "Nachrichten" hat. Wenn also eine Partei "HELLO" und danach "BYE" sendet, wird alles in den Stream verkettet: "HELLOBYE". Oder schlimmer noch, Ihr Server erhält zuerst "HELL", gefolgt von "OBYE".

Sie brauchen also Nachrichtenrahmen oder Regeln, wie zu interpretieren, wo Nachrichten beginnen und enden.

Normalerweise möchten Sie nicht Ihr eigenes Anwendungsprotokoll erfinden. Normalerweise werden HTTP oder andere existierende Protokolle verwendet, um Nachrichten weiterzugeben.

+0

also sollte der Server Aufgaben abhängig von der Steckdose ausführen? –

+0

Vielen Dank für die schnelle Antwort! Das macht viel mehr Sinn –

Verwandte Themen