利用socket进行局域网收发文件
首先在刷好linux的随身wifi准备创建接受端
注意发送接受双方编码一致
file_name = conn.recv(1024).decode('utf-8')
import socket
# 定义要绑定的IP地址和端口号
HOST = ''
PORT = 8888
# 创建socket对象并绑定到指定IP地址和端口号
s = socket.socket()
s.bind((HOST, PORT))
# 监听端口
s.listen(1)
# 等待连接
conn, addr = s.accept()
print('Connected by', addr)
# 接收文件名
file_name = conn.recv(1024).decode()
name=file_name[:file_name.find(".")]
if not os.path.exists(name):
open(name+".py", 'a').close()
with open(name+".py", 'wb') as f:
while True:
data = conn.recv(1024)
if not data:
break
f.write(data)
# 接收文件数据
with open(file_name, 'wb') as f:
while True:
data = conn.recv(1024)
if not data:
break
f.write(data)
# 关闭连接
conn.close()
、

执行就会阻塞等待,这时候服务器就会监听8888端口,并接收通过该端口发送来的文件,可以看到8888端口已经处于监听状态
客户端
import socket
def transfer_file(file_path, host, port):
# 创建socket对象并连接到指定主机和端口
s = socket.socket()
s.connect((host, port))
# 发送文件名
file_name = file_path.split("/")[-1].encode('utf-8')
s.send(file_name)
# 发送文件数据
with open(file_path, "rb") as f:
while True:
data = f.read(1024)
if not data:
break
s.send(data)
# 关闭socket连接
s.close()
if __name__ == "__main__":
# 定义目标主机和端口号
target_host = "192.168.0.118"
target_port = 8888
# 定义要传输的文件路径
file_path = "../serv.py"
# 发送文件
transfer_file(file_path, target_host, target_port)

可以看到已经成功接收到文件

浙公网安备 33010602011771号