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

Python Socket编程:TCP客户端-服务器连接遇ConnectionRefusedError(WinError10061)

解决TCP连接错误ConnectionRefusedError: [WinError 10061]

这个错误说白了就是客户端找不到能响应的服务器,要么服务器没正常跑起来,要么代码里藏着小坑。先看看你的服务器代码里的几个关键问题:

一、你的服务器代码里的致命小问题

  • bind方法参数写错了:serverSocket.bind('',serverPort) 这行不对,AF_INET类型的socket绑定必须传一个元组,格式是(主机地址, 端口号)。要是想让服务器监听所有网卡的请求,改成('', serverPort)或者('0.0.0.0', serverPort)就行。
  • 格式化字符串符号错误:print('Klienti u lidh me serverin %s me port $s' % addr) 里的$s应该是%s,不然服务器一收到连接就会报错崩溃,根本没法处理请求。
  • 代码没写完:最后一行FjaliaMeShkronj...是半截代码,得补全处理逻辑,比如把收到的消息转大写再发回去之类的。
  • 漏了listen()调用:TCP服务器必须调用serverSocket.listen()才能开始监听连接请求,你原来的代码里没这一步,服务器根本不会等着接连接!

二、修正后的完整服务器代码

我帮你把这些问题都改好了,直接就能跑:

from socket import *

serverPort = 1200
serverSocket = socket(AF_INET, SOCK_STREAM)
# 修正bind的参数格式为元组
serverSocket.bind(('', serverPort))
# 启动监听,参数是最大等待连接数
serverSocket.listen(1)

print(f'Server has started on port: {serverPort}')
print('Server is ready to accept requests: ')

while True:
    connectionSocket, addr = serverSocket.accept()
    # 修正格式化字符串的符号错误,用f-string更直观
    print(f'Klienti u lidh me serverin {addr[0]} me port {addr[1]}')
    # 把收到的字节流解码成字符串
    fjalia = connectionSocket.recv(1024).decode('utf-8')
    # 示例:把消息转成大写(你可以换成自己的业务逻辑)
    fjaliaMeShkronjaTeMedha = fjalia.upper()
    # 把处理后的消息编码成字节流发回客户端
    connectionSocket.send(fjaliaMeShkronjaTeMedha.encode('utf-8'))
    # 处理完请求记得关闭连接
    connectionSocket.close()

三、配套的客户端代码参考

客户端也得写对,不然还是连不上,给你个参考版本:

from socket import *

serverName = 'localhost'  # 如果服务器在别的电脑上,换成对应的IP地址
serverPort = 1200
clientSocket = socket(AF_INET, SOCK_STREAM)
# 连接服务器,参数也是元组格式
clientSocket.connect((serverName, serverPort))

message = input('Jepni nje fjali: ')
clientSocket.send(message.encode('utf-8'))
modifiedMessage = clientSocket.recv(1024).decode('utf-8')
print(f'Nga serveri mori: {modifiedMessage}')
clientSocket.close()

四、如果还是报错的排查步骤

要是改完代码还出10061错误,按这几步查:

  • 先启动服务器,再启动客户端:顺序搞反了的话,客户端连的时候服务器还没准备好,肯定被拒绝。
  • 检查端口有没有被占用:Windows下打开命令提示符,输入netstat -ano | findstr :1200,看看1200端口是不是被别的程序占了,是的话关掉占用的程序再重启服务器。
  • 确认客户端连接的地址和端口和服务器一致:客户端的serverName要对应服务器绑定的地址,端口必须和服务器的serverPort一模一样。要是服务器在另一台电脑,得确保两台机器在同一网络,而且服务器的防火墙允许1200端口的入站连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:16:05