Сервер и клиент не отправляют файл, как я могу заставить его работать? - PullRequest
0 голосов
/ 19 января 2020

Я пытаюсь создать передачу файла клиент-сервер, используя сокет python, но не могу заставить его работать

Например, я использовал это из учебника:

Сервер:

import socket, os, sys

def Main():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    try:
        s.connect(('10.255.255.255', 1))
        IP = s.getsockname()[0]
    except:
        IP = '127.0.0.1'
    finally:
        s.close()
    print(IP)
    host = IP
    port = 50001
    s = socket.socket()
    s.bind((host,port))
    print("server Started")
    s.listen(1)
    while True:
        c, addr = s.accept()
        print("Connection from: " + str(addr))
        filename = ''
        while True:
            data = c.recv(1024).decode('utf-8')
            if not data:
                break
            filename += data
        print("from connected user: " + filename)
        c.close()
if __name__ == '__main__':
    Main()

Клиент:

host = '192.168.1.90'
port = 50001

s = socket.socket()
s.connect((host, port))

Filename = 'prova3.txt'
s.send(Filename.encode('utf-8'))
s.shutdown(socket.SHUT_WR)
data = s.recv(1024).decode('utf-8')
print(data)
s.close()
host = '192.168.1.90'
port = 50001
s = socket.socket()
s.connect((host, port))
Filename = 'prova3.txt'
s.send('prova3.txt')
s.shutdown(socket.SHUT_WR)
data = s.recv(1024).decode('utf-8')
print(data)
s.close()

Теперь этот клиент и сервер соединяются друг с другом, но не отправляют файл, что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...