Frage zu Server und Client

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
_at
User
Beiträge: 1
Registriert: Sonntag 23. September 2012, 12:54

Hallo,

ich möchte gerne eine Kommunikation zwischen Server und Client über TCP aufbauen. Aber es scheitert leider schon beim Ansatz.

Auf einer Internetseite (http://ilab.cs.byu.edu/python/socket/echoserver.html) finde ich den folgenden Code für Server und Client.

Für den Server:

Code: Alles auswählen

#!/usr/bin/env python

"""
A simple echo server
"""

import socket

host = ''
port = 50000
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
while 1:
    client, address = s.accept()
    data = client.recv(size)
    if data:
        client.send(data)
    client.close()
Und für den Client:

Code: Alles auswählen

#!/usr/bin/env python

"""
A simple echo client
"""

import socket

host = 'localhost'
port = 50000
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send('Hello, world')
data = s.recv(size)
s.close()
print 'Received:', data
Und jetzt zu meiner Frage: Wie lasse ich die beiden denn kommunizieren? Wie starte ich überhaupt den Server? Indem ich doch Run Module in der Shell ausführe, oder? Das Problem ist dann aber, dass ich nicht den Client ausführen kann, weil die Shell dann restartet wird. Und kompilieren kann das ich Skript zum Server ja auch nicht.

Wie ihr schon seht, kenne ich mich absolut nicht aus mit dem Ganzen. Daher wäre es toll, wenn mir jemand helfen könnte :-)

Vielen Dank im Voraus!
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

_at hat geschrieben:Wie starte ich überhaupt den Server? Indem ich doch Run Module in der Shell ausführe, oder? Das Problem ist dann aber, dass ich nicht den Client ausführen kann, weil die Shell dann restartet wird. Und kompilieren kann das ich Skript zum Server ja auch nicht.
Bitte löse dich gedanklich davon für alles im Kontext mit Python immer IDLE benutzen zu müssen. IDLE ist eine Entwicklungsumgebung für Python (oder je nach Ansichtssache auch nur ein Placebo einer solchen), aber IDLE wird nicht benötigt um Python-Programme laufen zu lassen.

Öffne eine Shell des Betriebssystems und rufe dort einfach skriptname.py auf. In einer weiteren OS-Shell kannst du dann das zweite Skript ausführen.
Benutzeravatar
fecub
User
Beiträge: 24
Registriert: Freitag 14. November 2008, 16:53
Kontaktdaten:

ließ dir das mal bitte durch, ich denke es wird viele deiner fragen beantworten:
http://openbook.galileocomputing.de/pyt ... 2dff1b29bd

und hier kannst du sehen, wie sowas gestartet wird:
http://www.youtube.com/watch?v=zVnpKJu1rrE
Antworten