zoukankan      html  css  js  c++  java
  • Python Socket 简单聊天室2

    上篇文章写了一个简单的单线程的一问一答的简单聊天室。这次我们使用SocketServer模块搭建一个多线程异步的聊天室。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # -*- coding:utf-8 -*-
     
    import SocketServer
    class  mysocketclass(SocketServer.BaseRequestHandler):
        def handle(self):
            client_information=self.request;  #获取客户端的信息,相当于accept
            client_information.send('Welcome!');
            while True:
                data = client_information.recv(1024)
                if data == 'exit':
                    client_information.close();
                else:
                    print '**Client**:',(data);
                    client_information.send("ok");
     
    if __name__=='__main__':
        ip_add=('127.0.0.1',9998);
        server=SocketServer.ThreadingTCPServer(ip_add,mysocketclass);
        server.serve_forever();

    客户端

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #-*-coding:utf-8-*-
     
    import socket
    socket_object=socket.socket();
    ip_add=('127.0.0.1',9998);
    socket_object.connect(ip_add);
     
    while True:
        print '**Server**:',(socket_object.recv(1024))
        seend_content=raw_input('Client:');
        socket_object.send(seend_content)
        if  seend_content=='exit':
            socket_object.connect.close();

    从代码可以看出,客户端的内容是没变的。变动的是服务端采用了模块SocketServer

    运行截图:

    Rex_Blog

    下一次我们加上数据库,实现登录,注册的聊天室

     原文地址:http://rexyan.cn/article/25

    更多内容,可访问:http://rexyan.cn
  • 相关阅读:
    C++ handle(句柄类) part2
    C++代理类的使用
    第一个blog
    C++ Handle(句柄) part1
    关于理想团队的构建和对软件流程的理解
    提供就医帮助的安卓APP
    上海地铁游移动APP需求分析
    关于学习了《构建之法》的若干存在疑惑的问题
    安卓APP开发简单实例 结对编程心得
    Vue修改Vue项目运行端口号(CLI2)
  • 原文地址:https://www.cnblogs.com/rexyan/p/6166126.html
Copyright © 2011-2022 走看看