您好,我们又回来了另一个Python #DIY教程。 今天,我们要去一个Python聊天室,或者您可以说易于理解和运行的Python Chatbox。
Python Chatbox简要地使用了套接字编程和多线程的概念。 聊天机器人的脚本中有两个部分,即称为socketserver.py的服务器端程序和称为chat.py的客户端程序。 它可以帮助聊天室或聊天框同时与多个用户连接。
socketserver.py
## Python代码可做聊天室的服务器端部分。
import _thread
import socket
import threading
"""AF_INET is the address domain of the
socket. This is used when we have an Internet Domain with
any two hosts The 2nd context of the code is the type of socket. """
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
# piece of code to allow IP address & Port
host="127.0.0.1"
port=5000
s.bind((host,port))
s.listen(5)
clients=[]
#code to allow users to send messages
def connectNewClient(c):
while True:
global clients
msg = c.recv(2048)
msg ='Online ('+str(clients.index(c)+1)+'): '+msg.decode('ascii')
sendToAll(msg,c)
def sendToAll(msg,con):
for client in clients:
client.send(msg.encode('ascii'))
while True:
c,ad=s.accept()
# Display message when user connects
print('*服务器已连接 ')
clients.append(c)
c.send(('Online ('+str(clients.index(c)+1)+')').encode('ascii'))
_thread.start_new_thread(connectNewClient,(c,))
由于gui代码很长,所以我单独给出了 Python Chat box