Einfacher Netzwerkserver und Client
Verfasst: Donnerstag 4. August 2005, 14:04
Für Alle, die sich mit Sockets auseinander setzten wollen, hab ich hier mal den wohl einfachsten Server und den einfachsten Client erstellt.
Der Server:
Der Client:
Den Server einfach auf einem PC im Netzwerk starten. Dann den Client starten. Im Client müsst ihr dann die Addresse des Server PCs eingeben. Wenn ihr Client und Server auf dem Selben PC ausführt, müsst ihr localhost eingeben. Das wisst ihr aber bestimmt schon
Viel Spaß damit!
Update1:
Verbindung mit close schließen (siehe unten)
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)