__蟑螂恶霸__ 2024-01-27 23:17 采纳率: 0%
浏览 40
已结题

使用python sock库发文件,目标计算机积极拒绝

想给自己发一下,结果报错
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
请教各位,怎么解决
服务端

import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('192.168.37.1', 12345))
server.listen(1)
print("Server is waiting for a file...")

client_socket, client_address = server.accept()

with open('received_file.txt', 'wb') as file:
    while True:
        data = client_socket.recv(1024)
        if not data:
            break
        file.write(data)

client_socket.close()
server.close()
print("File received successfully.")

客户端

import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('192.168.50.140', 12345))

with open('test.txt', 'rb') as file:
    data = file.read(1024)
    while data:
        client.send(data)
        data = file.read(1024)

client.close()
print("File sent successfully.")

  • 写回答

20条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-01-27 23:18
    关注
    获得0.60元问题酬金

    引自免费微信小程序:皆我百晓生

    1. 问题分析

    在您提供的代码示例中,客户端尝试连接到服务器时出现了错误 ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。这意味着客户端试图连接的 IP 地址('192.168.50.140')和端口号(12345)上没有运行接收文件的服务器程序,或者由于防火墙、网络配置等原因导致连接被拒绝。

    2. 解决方案步骤

    (a) 检查服务器配置与运行状态

    确保服务端程序已正确启动并监听在指定的 IP 地址及端口上。您的服务端代码应该在 '192.168.37.1' 上运行,而客户端尝试连接的是 '192.168.50.140'。请确认两者是否应当指向同一台机器或网络中的不同机器,并确保地址无误。

    # 确保服务端运行于正确的 IP 地址
    server.bind(('192.168.50.140', 12345))  # 修改为需要监听的实际 IP 地址
    

    (b) 确认端口开放与防火墙设置

    检查目标计算机上的防火墙设置,确保端口 12345 对 TCP 连接是开放的。如果有必要,请临时关闭防火墙测试,或者创建一个允许该端口通过的规则。

    (c) 客户端重新尝试连接

    确保服务端已启动且可以接受连接后,在客户端再次尝试连接:

    # 确保客户端连接至正确的 IP 地址
    client.connect(('192.168.50.140', 12345))  # 若服务端IP有变,请相应更改
    

    (d) 网络连通性验证

    检查两台设备间的网络连接,确保它们之间可以直接通信。如果是在同一局域网内,通常不会有太大问题;如果是跨网段传输,请确保路由配置正确。

    3. 总结

    根据上述解决方案,解决 "目标计算机积极拒绝" 的问题通常涉及以下几点:

    • 确保服务端运行正常并在正确的 IP 地址和端口监听。
    • 调整客户端连接参数以匹配服务端设置。
    • 检查防火墙和网络安全策略,允许所需端口的连接。
    • 验证网络连通性。
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月4日
  • 修改了问题 1月27日
  • 创建了问题 1月27日