Problème TCP client serveur
Bonjour Tous le monde,
Je suis entrain de créer une server-client. Je souhaite enregistrer les messages envoyés par le client. Mais je rencontre un problème; C'est-à-dire, il continue à envoyer le message. Le dernier boucle while ne s'arrête pas; Pouvez-vous me dire où se trouve mon problème ?. Et je n'arrive pas enregistré sur les conversations sur le fichier text.txt
programme fichier:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| import socket
import os
host = '127.0.0.1'
port = 4001
ClientSocket = socket.socket()
print('Attend pour la connexion')
try :
ClientSocket.connect((host,port))
except socket.error as e:
print(str(e))
Response = ClientSocket.recv(1024)
while True:
Input = input('Votre message')
if Input == "Dossier":
print("Saisir le nom de fichier")
demande = input()
fichier = open(demande,"rb")
l = fichier.read(1024)
print('entrer un nom de fichier')
demande1 = os.mkdir("/home/deeloshan/apprendre_projet_suisse/projet_1/test.txt")
while(l):
ClientSocket.send(l)
l = fichier.read(1024)
ClientSocket.send(str.encode(Input))
Response = ClientSocket.recv(2048)
print(Response.decode('utf-8'))
filename = 'text.txt'
file1 = open(filename,"w")
while(Response):
file1.write(Response.decode('utf-8'))
file1.close()
ClientSocket.close() |
programme serveur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import socket
from _thread import *
host = '127.0.0.1'
port = 4001
ThreadCount = 0
def client_handler(connection):
connection.send(str.encode("You are now connected to the replay erver... Type BYE to stop"))
while True:
data = connection.recv(2048)
message = data.decode('utf-8')
if message == 'BYE':
break
reply = f'Server : {message}'
connection.sendall(str.encode(reply))
connection.close()
def accept_connections(ServerSocket):
Client, address = ServerSocket.accept()
print('Connected to :' + address[0] + ':'+str(address[1]))
start_new_thread(client_handler,(Client,))
def start_server(host,port):
ServerSocket = socket.socket()
try:
ServerSocket.bind((host, port))
except socket.error as e:
print(str(e))
print(f'Server is listing on the port{port}')
ServerSocket.listen()
while True:
accept_connections(ServerSocket)
start_server(host, port) |