zoukankan      html  css  js  c++  java
  • 网络编程之socketserver初识

    网络编程之socketserver初识
    Server
    #!/usr/bin/env python
    # @Author   : "Wjl"
    # @Date     : 2017/12/22
    # @Time     : 11:07
    # @SoftWare : PyCharm
    # @File     : Server端并发聊天_Server.py
    
    import socketserver
    
    """
    socketserver模块是python为我们写好的一个封装了网络操作相关的模块
    比我们自己手写socket方便
    """
    
    class MyServer(socketserver.BaseRequestHandler):  # 必须继承socketserver.BaseRequestHandler
    
        def handle(self):  # 必须重写父类的handle方法,我们的逻辑就写在handle方法中
            print("服务端启动...")
            while True:
                conn = self.request  # self.request 就等于 TcpSocket.accept() 返回的socket对象
                print(self.client_address)  # self.client_address 就等于 TcpSocket.accept 返回的addr元组
                while True:
                    # 将接收到的数据原路返回
                    client_data = conn.recv(1024)
                    print(str(client_data, "utf8"))
                    print("waiting...")
                    conn.sendall(client_data)
                conn.close()
    
    if __name__ == '__main__':
        server = socketserver.ThreadingTCPServer(('127.0.0.1', 8888), MyServer)  # 要实现并发就必须调用ThreadingTCPServer
        server.serve_forever()  # 启动
    View Code
    Client
    #!/usr/bin/env python
    # @Author   : "Wjl"
    # @Date     : 2017/12/22
    # @Time     : 11:07
    # @SoftWare : PyCharm
    # @File     : Server端并发聊天_Client.py
    
    import socket
    
    TcpSocket = socket.socket()
    
    TcpSocket.connect(('127.0.0.1', 8888))
    
    while True:
        user_input = input('>>> ')
        if user_input == 'q':
            break
    
        TcpSocket.send(user_input.encode('utf-8'))
        data = TcpSocket.recv(1024)
        print(data.decode('utf-8'))
    
    TcpSocket.close()
    View Code
  • 相关阅读:
    rabbitMq(2)之“Work”模式
    rabbitmq(1)之"Hello World"模式
    Maven的实用基础命令
    RabbitMq(3)之“发布/订阅”模式
    mac rabbitmq安装以及入门
    Mac 安装Homebrew
    多线程通讯之管道
    CentOS中防火墙之iptables
    CentOS中防火墙之Firewall
    Redis的简介
  • 原文地址:https://www.cnblogs.com/xiaofengchu/p/8461191.html
Copyright © 2011-2022 走看看