出现了一个问题(python)求解决!!!
  • 板块学术版
  • 楼主gugugu_123
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/4/4 17:07
  • 上次更新2024/4/4 19:51:56
查看原帖
出现了一个问题(python)求解决!!!
1012538
gugugu_123楼主2024/4/4 17:07

我现在有种猜想,不会是Win11的防火墙把客户端当病毒拦住了吧(本来想依照微信做一个聊天系统的,但是是第一次做,不太懂)

下面是客户端

import socket
import threading

# 服务器配置
HOST = '127.0.0.1'
PORT = 55555

# 创建服务器 socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST, PORT))

# 存储客户端列表
clients = []

# 处理客户端消息
def handle_client(client):
    while True:
        try:
            # 接收消息
            message = client.recv(1024).decode('utf-8')
            # 广播消息给所有客户端
            broadcast(message)
        except:
            # 移除断开连接的客户端
            clients.remove(client)
            client.close()
            break

# 广播消息给所有客户端
def broadcast(message):
    for client in clients:
        client.send(message.encode('utf-8'))

# 接受客户端连接
def accept_clients():
    while True:
        client, address = server.accept()
        print(f"Connected with {str(address)}")

        # 添加客户端到列表
        clients.append(client)

        # 启动处理客户端消息的线程
        thread = threading.Thread(target=handle_client, args=(client,))
        thread.start()

# 启动服务器
def start_server():
    server.listen()
    print(f"Server is listening on {HOST}:{PORT}")
    accept_clients()

if __name__ == "__main__":
    start_server()

这是用户端(他会启动服务器)

下面是客户端(如果ip地址相同,他会接入用户端开启的服务器)

import socket
import threading

# 服务器配置
HOST = '127.0.0.1'
PORT = 55555

# 连接到服务器
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((HOST, PORT))

# 接收服务器消息
def receive():
    while True:
        try:
            # 接收消息
            message = client.recv(1024).decode('utf-8')
            print(message)
        except:
            # 关闭连接
            print("An error occurred!")
            client.close()
            break

# 发送消息到服务器
def send():
    while True:
        message = input()
        client.send(message.encode('utf-8'))

# 启动接收消息的线程
receive_thread = threading.Thread(target=receive)
receive_thread.start()

# 启动发送消息的线程
send_thread = threading.Thread(target=send)
send_thread.start()

请看运行结果

Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
=============== RESTART: D:/人工智能启蒙/人工智能启蒙2/编程/初识无人机/无人机安全/客户链接.py ==============
Server is listening on 127.0.0.1:55555

============= RESTART: D:/人工智能启蒙/人工智能启蒙2/编程/初识无人机/无人机安全/客户连接(好友).py ============
Traceback (most recent call last):
  File "D:/人工智能启蒙/人工智能启蒙2/编程/初识无人机/无人机安全/客户连接(好友).py", line 10, in <module>
    client.connect((HOST, PORT))
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
>>> 

如果你要运行的话,请先运作用户端启动服务器,然后启动客户端接入服务器(客户端可以一次性接入多个)

2024/4/4 17:07
加载中...