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()
  • 相关阅读:
    DES算法实现
    2018-2019-2 20175226 实验五《网络编程与安全》实验报告
    2018-2019-2 20175226王鹏雲 实验四《Android程序设计》实验报告
    第05组 Beta冲刺(1/4)
    Alpha事后诸葛亮
    第05组 Alpha冲刺(4/4)
    第05组 Alpha冲刺(3/4)
    第05组 Alpha冲刺(2/4)
    第05组 Alpha冲刺(1/4)
    第05组 团队Git现场编程实战
  • 原文地址:https://www.cnblogs.com/aaron456-rgv/p/12508769.html
Copyright © 2011-2022 走看看