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
  • 相关阅读:
    敏捷开发-各个原则的理解
    DWH中增量数据的抽取
    SSIS的部署和配置
    Checkpoint 和Breakpoint
    两种动态SQL
    SQLServer查询计划
    程序员接项目的经验1
    Date.prototype.format
    前端颜色选择器
    Idea快捷键和使用技巧【未完】
  • 原文地址:https://www.cnblogs.com/rexyan/p/6166126.html
Copyright © 2011-2022 走看看