Der Server:
Code: Alles auswählen
#! /usr/bin/env python
# -*- encoding: latin1 -*-
# Dieser Server sendet alle Daten, die er empfängt an den
# Client als Antwort zurück
from socket import *
# Der standard Echo Port ist nicht sehr nützlich, da er root
# Rechte erfordert. Wir nehemen den Port 50007
ECHO_PORT = 50007
BUFSIZE = 1024
def main():
# Socket erstellen und an Port binden
s = socket(AF_INET, SOCK_STREAM)
s.bind(('', ECHO_PORT))
s.listen( 1 )
print "Server gestartet"
# Warte auf eine Verbindung zum Server
conn, (remotehost, remoteport) = s.accept()
print 'Verbunden mit %s:%s' % (remotehost, remoteport)
while 1:
# Empfange daten vom Client
data = conn.recv(BUFSIZE)
print "Echo: %s" % (data)
if not data:
# Die Verbindung wurde getrennt
break # Abbruch
# Sende die Daten zurück zum client
conn.send(data)
# Socket schließen
s.close()
main()
Code: Alles auswählen
#! /usr/bin/env python
# -*- encoding: latin1 -*-
# Dieser Client Sendet eine Nachricht an einen Server und
# wartet auf eine Antwort.
from socket import *
SERVER_PORT = 50007
BUFSIZE = 1024
def main():
print "Server Addresse: "
host = raw_input()
print
print "Nachricht: "
msg = raw_input()
# Ein INet Streaming (TCP/IP) Socket erzeugen
s = socket( AF_INET, SOCK_STREAM)
# Zum Server verbinden
s.connect( (host, SERVER_PORT) )
# Unsere Nachricht senden
s.send( msg )
# Auf Daten vom Server warten
data = s.recv( BUFSIZE )
# Daten anzeigen
print
print "Daten: %s" % (data)
# Verbindung trennen
s.close()
main()
Viel Spaß damit!
Update1:
Verbindung mit close schließen (siehe unten)