Hier der Quellcode für einen Echoserver mit der Möglichkeit, Verbindungen zu mehreren Clients gleichzeitig einzugehen.
Die Verbindung zum Server geschieht über Telnet auf Port 23.
Als Client lässt sich die Verbindung durch die Eingabe von exit beenden.
#!/usr/bin/python2.7
import socket, sys
from multiprocessing import Process
print "Server start..." #Ausgabe auf Serverconsole
def multiclient(clientSocket, addr):
while True:
client_data=clientSocket.recv(2048)
print "New Client Connected: ",client_data
while len(client_data)>0:
client_data=clientSocket.recv(2048)
if client_data.strip() == 'exit':
print "user disconnected"
cSock.send("disconnected")
sys.exit()
else:
cSock.send (client_data)
print (client_data)
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Socket erstellen
server.bind(("localhost", 23)) #Port 23 localhost zuweisen
server.listen(10)
workerProcesses=[]
while True:
cSock, addr = server.accept()
cSock.send("Gib deinen Namen ein: ") #Ausgabe auf Clientconsole
worker = Process(target=multiclient, args= (cSock, addr))
worker.start()
workerProcesses.append(worker)
Keine Kommentare:
Kommentar veröffentlichen