Python 官方文档:入门教程 => 点击学习
目录一、简介二、网络编程基础概念三、Socket编程简介及原理四、聊天室架构及功能需求五、实现聊天室服务器端1.使用socket创建服务器端socket对象。2.绑定IP地址和端口。
本篇文章旨在通过实现一个简单的多人聊天室,帮助读者掌握python的socket编程。我们将分为以下几个部分来展开本文的内容:
socket
库提供了丰富的函数和类,用于实现网络编程。import socket
import threading
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("0.0.0.0", 8080))
server.listen(5)
clients = []
while True:
client_socket, client_address = server.accept()
clients.append(client_socket)
thread = threading.Thread(target=handle_client, args=(client_socket, client_address))
thread.start()
def handle_client(client_socket, client_address):
print(f"[INFO] Client {client_address} connected.")
while True:
try:
message = client_socket.recv(1024).decode("utf-8")
if not message:
break
print(f"[{client_address}] {message}")
broadcast(client_socket, f"[{client_address}] {message}")
except:
break
print(f"[INFO] Client {client_address} disconnected.")
clients.remove(client_socket)
client_socket.close()
``
clients.remove(client_socket)
client_socket.close()
def broadcast(from_client_socket, message):
for client_socket in clients:
if client_socket != from_client_socket:
client_socket.send(message.encode("utf-8"))
import socket
import threading
def handle_client(client_socket, client_address):
print(f"[INFO] Client {client_address} connected.")
while True:
try:
message = client_socket.recv(1024).decode("utf-8")
if not message:
break
print(f"[{client_address}] {message}")
broadcast(client_socket, f"[{client_address}] {message}")
except:
break
print(f"[INFO] Client {client_address} disconnected.")
clients.remove(client_socket)
client_socket.close()
def broadcast(from_client_socket, message):
for client_socket in clients:
if client_socket != from_client_socket:
client_socket.send(message.encode("utf-8"))
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("0.0.0.0", 8080))
server.listen(5)
print("[INFO] Server is listening...")
clients = []
while True:
client_socket, client_address = server.accept()
clients.append(client_socket)
thread = threading.Thread(target=handle_client, args=(client_socket, client_address))
thread.start()
import socket
import threading
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("127.0.0.1", 8080))
def receive_message():
while True:
message = client.recv(1024).decode("utf-8")
print(message)
thread = threading.Thread(target=receive_message)
thread.start()
while True:
message = input()
client.send(message.encode("utf-8"))
import socket
import threading
def receive_message():
while True:
message = client.recv(1024).decode("utf-8")
print(message)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("127.0.0.1", 8080))
print("[INFO] Connected to the server.")
thread = threading.Thread(target=receive_message)
thread.start()
while True:
message = input()
client.send(message.encode("utf-8"))
分别启动聊天室服务器端和多个客户端。在客户端发送消息,观察其他客户端是否能收到消息。尝试断开客户端,观察服务器端和其他客户端的表现。
到此这篇关于使用python构建一个自己的聊天室的文章就介绍到这了,更多相关python构建聊天室内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 使用python构建一个自己的聊天室
本文链接: https://www.lsjlt.com/news/202894.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0