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
  • 相关阅读:
    Kali 查看系统信息的一些命令及查看已安装软件包的命令
    mysql_对于DQL 的简单举例
    java简单分析LinkedList
    java_简单解析ArrayList_iterable
    java_随机密码
    rsync 服务基础配置讲解
    DNS服务器的基础
    NFS服务器配置
    DHCP服务器配置
    VSFTP 配置详解,附带例子
  • 原文地址:https://www.cnblogs.com/xiaofengchu/p/8461191.html
Copyright © 2011-2022 走看看