sách gpt4 ai đã đi

python-3.x - Python套接字: how to detect and list connected clients in server in the other clients and how to update it when a client disconnected?

In lại 作者:行者123 更新时间:2023-12-03 12:08:10 28 4
mua khóa gpt4 Nike

我已经编写了一个用于接收多个客户端的服务器,它可以分别与客户端通信。在这里,我可以列出服务器中已连接的客户端,但是当客户端断开连接时,它不会从服务器中删除客户端。

Server.py


import socket
from threading import Thread

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
ip = '0.0.0.0'
port = 4141
s.bind((ip, port))
s.listen(5)

connected_clients=[]


def handle_client(c, addr):

trong khi Đúng:
thử:
message = input("You: ")
message = message.encode("ascii")
c.send(message)
ngoại trừ:
print("Disconnected for sending..")


reply = c.recv(4141)
if not reply:
print("Disconnected for receiving..")

khác:
reply = reply.decode('ascii')
print("Other : ", reply)


trong khi Đúng:

c, addr = s.accept()
# print('Connected:', addr)
connected_clients.append(addr[0])
print(connected_clients)


t = Thread(target=handle_client, args=(c, addr))
t.setDaemon(True)
t.bắt đầu()



Client.py


import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
port = 4141

ip = input('Enter the IP Address::')

s.connect((ip, port))


trong khi Đúng:

message = input("You: ")
message = message.encode("ascii")
s.send(message)

reply = s.recv(4141)
reply = reply.decode('ascii')
print("Other : ", reply)


s.close()

1)列出服务器中的已连接客户端和其他客户端(每个客户端都需要列出服务器中当前处于 Activity 状态的所有客户端)

2)当服务器断开与服务器的连接时,还必须删除客户端,此更新的连接的客户端信息必须传递到所有当前连接的客户端中。

我已经通过以下答案进行了研究,但没有成功。

1st

2nd

3rd

1 Câu trả lời

我对服务器开发的兴趣不大,但这可能会有所帮助:

for client in connected_clients:
connected=str(connected_clients)
s.send(connected.encode())

可以根据要求完成此操作,例如:

data = s.recv(1024)
if data == :
#Call the code above.

要删除不 Activity 的用户,您可以执行以下操作:

whoLeft = s.recv(1024)
if whoLeft in connected_clients:
connected_clients.remove(whoLeft)

您将不得不调整客户端,以便在断开连接之前客户端发送其地址,但是否则应该没问题。

关于python-3.x - Python套接字: how to detect and list connected clients in server in the other clients and how to update it when a client disconnected?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54643905/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com