首页 > 解决方案 > 服务器和客户端不发送文件,我怎样才能让它工作?

问题描述

我正在尝试使用 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()

现在这个客户端和服务器互相连接但不发送文件,这是怎么回事?

标签: pythonsockets

解决方案


推荐阅读