zoukankan      html  css  js  c++  java
  • 0X03-SocketServer TCP服务器-Studying

    SocketServer TCP服务器

    #! /usr/bin/env python
    from socketserver import (TCPServer as TCP, StreamRequestHandler as SRH)
    from time import ctime
    '''
    作用:通过使用SocketServer类,TCPServer 和 StreamRequestHandler ,该脚本创建了一个时间戳TCP服务器
    '''
    
    HOST = ''
    PORT = 21567
    ADDR = (HOST,PORT)
    
    '''
    函数解析:
        1;readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存
        2;write() 方法用于向文件中写入指定字符串
        3;wfile不缓冲数据,对客户端发送的数据需一次性写入
        4;client_address:一个包含两个成员(主机名和端口)的数组,服务端输出的任何数据都将通过它们发送
    '''
    
    class MyRequestHandler(SRH):
        def handle(self):
            print("...connected from:",self.client_address)
            self.wfile.write('[%s] %s' %(ctime(),self.rfile.readline()))
    
    #利用给定的主机信息和请求处理类创建TCP服务器
    tcpServ = TCP(ADDR,MyRequestHandler)
    print("waiting for connection...")
    tcpServ.serve_forever()

    SocketServer TCP Client 

    #! /usr/bin/env python
    
    from socket import *
    '''
    作用:时间戳TCP客户端。
    '''
    HOST = 'localhost'
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST,PORT)
    
    '''
    函数解析:
        1;Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
    '''
    while True:
        tcpCliSock = socket(AF_INET,SOCK_STREAM)
        tcpCliSock.connect(ADDR)
        data = input('> ')
        data = data.encode()
        if not data:
            break
        tcpCliSock.send(data)
        #tcpCliSock.send('%s
    ' % data)
        data = tcpCliSock.recv(BUFSIZ)
        if not data:
            break
        print(data.strip())
        tcpCliSock.close()
  • 相关阅读:
    bzoj4262
    bzoj3252
    海蜇?海蜇!
    AGC018F
    java数据类型;常量与变量;类型转化;
    java 基础,查看jar包源码,JD-GUI
    性能测试报告
    如何防止http请求数据被篡改
    支付业务,测试遇到请求超时怎么处理;支付业务流程;异步通知和同步通知;
    fiddler使用;
  • 原文地址:https://www.cnblogs.com/aaron456-rgv/p/12508769.html
Copyright © 2011-2022 走看看