Python 简单的多线程聊天

Posted klvchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 简单的多线程聊天相关的知识,希望对你有一定的参考价值。

# client 端
import socket

ip_port = (‘127.0.0.1‘, 8091)
sk = socket.socket()
sk.connect(ip_port)
print("客户端启动: ")

while True:
    inp = input(">>>")
    sk.sendall(bytes(inp, "utf8"))
    if inp == ‘exit‘:
        break
    server_response = sk.recv(1024)
    print(str(server_response, "utf8"))
sk.close()


# server 端
import socketserver

class MyServer(socketserver.BaseRequestHandler):

    def handle(self):
        print("服务器启动...")
        while True:
            conn = self.request
            print(self.client_address)
            while True:
                client_data = conn.recv(1024)
                print(str(client_data, "utf8"))
                print("waiting...")
                server_response = input(">>>")
                conn.sendall(bytes(server_response, "utf8"))
            conn.close()

if __name__ == ‘__main__‘:
    server = socketserver.ThreadingTCPServer((‘127.0.0.1‘,8091), MyServer)
    server.serve_forever()   # 这里会执行 handle 方法,所以 handle 方法里是编写程序逻辑。

创建一个socketserver 至少分以下几步

First, you must create a request handler class by subclassing the BaseRequestHandlerclass and overriding its handle() method; this method will process incoming requests.
  
Second, you must instantiate one of the server classes, passing it the server’s address and the request handler class.

Then call the handle_request() or serve_forever() method of the server object to process one or many requests.

Finally, call server_close() to close the socket.



以上是关于Python 简单的多线程聊天的主要内容,如果未能解决你的问题,请参考以下文章

Python网络编程多线程聊天软件程序

多线程+socket实现多人聊天室

带 GUI 的多线程客户端/服务器聊天室

Python中的多处理错误

Python的多线程编程

python 简单的多线程端口扫描仪