python - 服务器和客户端不发送文件,我怎样才能让它工作?
问题描述
我正在尝试使用 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()
现在这个客户端和服务器互相连接但不发送文件,这是怎么回事?
解决方案
推荐阅读
- firefox - Firefox 扩展:通过 url 显示 iframe
- intellij-idea - 在 IntelliJ 的代码编辑器中,将所选文本用双引号括起来
- linux - 构建程序时linux头文件中的错误
- sql-server - 变量为空时选择空数据 SQL Server
- node.js - MongoDB - 创建文档 30 分钟后更新文档
- mysql - 在类别旁边显示所有类别以及该类别中的帖子数
- android-emulator - Android模拟器重启失败
- javascript - 给定一个数组和一个测试函数返回两个数组的函数是否有名称?
- flutter - 是否可以从 TabBarView 内容区域滑动到相邻的 PageView 页面?
- python - 使用 TensorFlow 2.0 的逻辑回归?