Ich lerne etwas Networking durch Python und kam mit dieser Idee von TCPServer Multithread, so dass ich mehrere Clients verbunden haben kann. Das Problem ist, dass ich nur einen Client verbinden kann.TCP-Threaded Python
import socket
import os
import threading
from time import sleep
from threading import Thread
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('Socket Preparado...')
def Main():
host = '127.0.0.1'
port = 5000
s.bind((host, port))
print('Enlaze listo...')
print('Escuchando...')
s.listen(5)
c, addr, = s.accept()
os.system('cls')
print('Conexion desde: '+str(addr))
def handle_client(client_socket):
while True:
data = client_socket.recv(1024).decode('utf-8')
if not data: break
print('Client says: ' + data)
print('Sending: ' + data)
client_socket.send(data.encode('utf-8'))
client_socket.close()
if __name__ == '__main__':
while True:
Main()
client_socket, addr = s.accept()
os.system('cls')
print('Conexion desde: '+str(addr))
Thread.start_new_thread(handle_client ,(client_socket,))
s.close()
Edit: Das ist mein eigentlicher Code, um es zu testen i zwei Client.py Codes öffnen und versuchen, es zu verbinden. Die erste Client.py verbindet erfolgreich (Obwohl es Fehler beim Empfangen und Zurücksenden von Informationen gibt) Die zweite wird ausgeführt, aber sie wird nicht in der Serverausgabe als verbunden oder so angezeigt, sie wird nur kompiliert und bleibt so.
mit 's.listen (1)'? – dsgdfg
https://docs.python.org/3.5/library/socket.html#socket.socket.listen –
Wenn ich aus der Dokumentation gut verstanden, ist es die Anzahl der möglichen Verbindungen? Ich habe die Nummer auf 2 geändert und kann immer noch nicht mehr als 1 mit dem Server verbinden. – WhiteGlove