我正在尝试在家庭网络中的客户端和服务器之间发送文件。我只想用一个简单的文件client.txt
进行测试。
客户端程序应该读取X字节并通过我创建的tcp套接字发送它,但我无法理解如何发送部分:
f = open("client.txt", "rb")
while 1:
// should read X bytes and send to the socket
我想我需要检查一下我要发送的数据是否有效,如果一个文件比例小,那么我在每批中发送的数量(例如1024)......或者它是否有效那样的?
答案 0 :(得分:4)
由于您提到您在设置服务器部分时遇到问题,我将从Python文档中删除它并稍微编辑它:
import socket
HOST = ''
PORT = 50007
s = socket.socket()
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
f = open("client.txt", "rb")
while 1:
data = f.read(1024)
if not data: break
conn.send(data)
conn.close()
可以找到相关文件here
答案 1 :(得分:1)
read()
接受一个可选参数,指定要读入的字节数。
要阅读文件的内容,请致电 f.read(大小),读取一些 数据量并将其作为a返回 串。 size是可选的数字 论点。当省略尺寸或 否定,整个内容 文件将被阅读并返回;它的 你的问题,如果文件是两倍 大到你机器的记忆力。 否则,最多读取大小字节 并返回。如果文件结束 已到达,f.read()将返回 一个空字符串(“”)。