Loading...

python相关的学习知识点总结, python学习知识点经验记录,python相关的学习知识点笔记

当前位置:首页Python

如何使用python socket向服务器传送文件

发布时间:2024-10-24 09:57
如何使用python socket向服务器传送文件
在Python中,您可以使用socket库来发送文件。以下是一个简单的例子,展示了如何使用TCP socket发送文件给服务器:

客户端代码(发送文件):

import socket
import os
 
# 设置服务器的IP地址和端口
SERVER_ADDRESS = ('127.0.0.1', 12345)
FILE_TO_SEND = 'example.txt'  # 要发送的文件路径
 
# 创建一个TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
# 连接服务器
sock.connect(SERVER_ADDRESS)
 
try:
    # 打开文件准备发送
    with open(FILE_TO_SEND, 'rb') as file:
        file_content = file.read()
 
    # 发送文件的大小
    sock.sendall(len(file_content).to_bytes(4, 'big'))
 
    # 发送文件内容
    sock.sendall(file_content)
 
finally:
    # 关闭连接
    sock.close()

服务器端代码(接收文件):

import socket
 
# 设置服务器的IP地址和端口 (注意这里是本机的地址和端口)
SERVER_ADDRESS = ('127.0.0.1', 12345)
FILE_TO_RECEIVE = '/www/hao366.net/received_example.txt'  # 接收文件的路径
 
# 创建一个TCP/IP socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
# 绑定地址和端口
server.bind(SERVER_ADDRESS)
 
# 监听客户端连接
server.listen(1)
 
print(f'Listening on {SERVER_ADDRESS}')
 
# 接受客户端连接
client_connection, client_address = server.accept()
print(f'Connection from {client_address} has been established.')
 
try:
    # 接收文件大小
    file_size = int.from_bytes(client_connection.recv(4), 'big')
 
    # 接收文件内容
    received_data = b''
    while len(received_data) < file_size:
        data = client_connection.recv(1024)
        if not data:
            break
        received_data += data
 
    # 将接收到的数据写入文件
    with open(FILE_TO_RECEIVE, 'wb') as file:
        file.write(received_data)
 
finally:
    # 关闭连接
    client_connection.close()
    server.close()

确保在运行服务器代码之前启动服务器,并且服务器正在监听指定的端口。客户端代码连接到服务器,发送文件内容。服务器接收文件内容,并将其保存到指定的文件中。

先暂时保存已有的内容正则替换后再还原回来

先暂时保存已有的内容正则替换后再还原回来, 正则查找字符串中已有的图片, 还原原来的图片, 从而达到在处理一段字符串时,保护要保护的对象不受

python中的全局变量 python中函数内部全局变量赋值失效的问题

python中,在一个函数内向全局变量赋值失效的问题,此时我们打印出来的 accesstoken是 空的字符串, 而这种写法在c#里是可以的

python requests以json传参的形式请求数据实例

python requests以json传参的形式请求数据实例, python - requests请求数据,调用api, post方式且传

python中使用flask接收对方get请求过来的参数 python开发微信公众号接口来自微信服务器的请求

开发者通过检验signature对请求进行校验(下面有校验方式 使用python编写)。若确认此次GET请求来自微信服务器,请原样返回ech

python爬虫数据解析xpath运用

使用>*只会获取标签为 中第一层的元素,但如果第一层中包含下层元素,也会附带获取,但是如果你不写 > 号,只写了 *号,则列表中会把所有的元

提供免费的服务器维护、网站维护、宝塔面板的安装及运行。

网站编写代码分享

网站收录效果不好,自然会影响排名,网站优化首先第一步是要搞好网站收录

网络营销