Я пытаюсь написать код клиент-сервер. Я добавил меню в код клиента. и в зависимости от ввода от клиента я пытался добавить случаи в код сервера. Я могу отправить выбранный клиент на серверный код, но не могу выбрать случай из полученных данных. Вот мой код.Невозможно прочитать ввод от клиентской программы
server.py
импорта сокет
импорт SYS
импорта ОС
s1 = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
печати ('socket created s1')
ServerAddress = ('локальный', 2000)
печати ('начиная сервер на', АдресСервера)
s1.bind (АдресСервера)
s1.listen (3)
время Правда:
print('waiting for connection')
connection, clientaddress = s1.accept()
print ('connecting with', clientaddress)
command = connection.recv(1000)
print (command)
if command == '1':
print('entered into 1st if')
try:
filename = connection.recv(1000)
with open(filename, 'rb') as filetosend:
for data in filetosend:
connection.sendall(data)
finally:
connection.close()
if command == '2':
print('entered into 2st if')
filelist = os.listdir('C:\Rahul')
connection.sendall(filelist)
if command == '3':
print('entered into 3st if')
s1.close()
break
Client.py
импорт SYS
импорта ОС
импорта гнездо
s1 = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
ServerAddress = ('локальный', 2000)
print ('подключение к серверу on'), serveraddress
s1.connect (serveraddress)
попробовать:
a = input('Enter you choice: \n 1-Get file \n 2-Get List \n 3-quit \n')
while True:
if a == 1:
s1.send('1')
b = input('enter file name: ')
s1.send(b)
downloadDir = r'C:\Users\rahul\Desktop'
with open(os.path.join(downloadDir, b), 'wb') as filetowrite:
while True:
data = s1.recv(1000)
if not data:
break
filetowrite.write(data)
filetowrite.close()
s1.close()
elif a == 2:
s1.send('2')
#s1.sendall(' send all files list ')
filelist = s1.recv(1000)
print (filelist)
elif a == 3:
x = False
print('closing connection')
s1.close()
наконец: s1.close
Благодарим вас за помощь Vipin. Это решило мою проблему. У меня все еще есть некоторые ошибки. Я буду работать над этим. –
Рад, что он помог^_^ –
Но я все еще получаю сообщение об ошибке в код сервера при чтении ввода, отправленного клиентом для выбора случая. –