You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python通过IP地址连接服务器并读取服务器文件技术咨询

用Python连接服务器并读取文件

你的代码仅完成了TCP连接的建立,要读取服务器上的文件,需要根据服务器使用的协议补充后续逻辑,以下是两种常见场景的实现方案:

场景1:服务器为HTTP/HTTPS服务

如果目标服务器是标准的Web服务器,使用requests库会比手动操作socket更简洁高效:

import requests

HOST = "10.xxx.xx.xx"
PORT = 0000  # 注意:HTTP默认端口是80,HTTPS是443,非默认端口需明确指定
file_path = "/path/to/target/file.txt"

# 构造完整请求URL
request_url = f"http://{HOST}:{PORT}{file_path}"
response = requests.get(request_url)

if response.status_code == 200:
    # 获取文件内容
    file_content = response.text
    print("文件内容:")
    print(file_content)
    
    # 保存到本地文件
    with open("local_copy.txt", "w", encoding="utf-8") as f:
        f.write(file_content)
else:
    print(f"请求失败,状态码:{response.status_code}")

场景2:自定义TCP服务器

如果服务器是自定义的TCP服务,需要和服务器端约定通信规则(比如先发送要读取的文件名,再接收文件内容),客户端代码示例如下:

import socket

HOST = "10.xxx.xx.xx"
PORT = 0000  # 替换为服务器实际监听的有效端口
target_file = "server_file.txt"  # 要读取的服务器端文件名

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    # 向服务器发送文件名请求(UTF-8编码)
    s.sendall(target_file.encode("utf-8"))
    
    # 循环接收文件内容,直到服务器关闭连接
    received_data = b""
    while chunk := s.recv(1024):  # 每次接收1024字节
        received_data += chunk
    
    # 解码并输出内容
    print("收到的文件内容:")
    print(received_data.decode("utf-8"))
    
    # 保存到本地
    with open("received_file.txt", "wb") as f:
        f.write(received_data)

注意事项

  • 端口号0000是无效值,需替换为服务器开放的有效端口(范围1-65535)
  • 若服务器需要身份验证(如FTP),需补充对应鉴权逻辑
  • 自定义TCP服务场景下,服务器端必须实现对应的文件读取及返回逻辑,否则客户端无法获取有效数据

内容的提问来源于stack exchange,提问作者user23526603

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:40:19