美文网首页
socketserver模块

socketserver模块

作者: 疯帮主 | 来源:发表于2017-11-27 14:12 被阅读0次
    1. 创建 SocketServer TCP 服务器
    $ tsTservSS.py
      1 #!/usr/bin/python3
      2 
      3 from socketserver import (TCPServer as TCP, StreamRequestHandler as SRH)
      4 from time import ctime
      5 
      6 HOST = ''
      7 PORT = 6666
      8 ADDR = (HOST, PORT)
      9 
     10 # 定义请求头类
     11 class MyRequestHandler(SRH):
     12 
     13     # 重写handle方法
     14     def handle(self):
     15         # 打印链接地址
     16         print('[+] ...connected from: %s: %d' % (self.client_address[0], self.client_address[1]))
     17         # 发送消息,self.rfile.readline(),读取数据包文件的一行发送回去,
     18         # self.wfile.write(),写入数据包里并发送回去
     19         self.wfile.write(b'[%s] %s' % (bytes(ctime(), 'utf-8'), self.rfile.readline()))
     20 
     21 
     22 tcpServ = TCP(ADDR, MyRequestHandler)
     23 print('[*] waiting for connection...')
     24 tcpServ.serve_forever()
    
    
    1. 创建 SocketServer TCP 客户端
    $ tsTclntSS.py
      1 #!/usr/bin/python3
      2 
      3 from socket import *
      4 
      5 HOST = 'localhost'
      6 PORT = 6666
      7 BUFSIZ = 1024
      8 ADDR = (HOST, PORT)
      9 
     10 while True:
     11     tcpCliSock = socket(AF_INET, SOCK_STREAM)
     12     tcpCliSock.connect(ADDR)
     13     data = input(">>>")
     14     if data == 'exit':
     15        break
     16     # 这里需要加\r\n终止符
     17     tcpCliSock.send(b'%s\r\n' % bytes(data, 'utf-8'))
     18     data = tcpCliSock.recv(BUFSIZ)
     19     if not data:
     20         break
     21     print(data.decode('utf-8').strip())
     22 
     23 tcpCliSock.close()
    
    1. 执行 TCP 服务器和客户端
    # 终端1
    $ ./tsTservSS.py 
    [*] waiting for connection...
    [+] ...connected from: 127.0.0.1: 33166    #连接一次
    [+] ...connected from: 127.0.0.1: 33168    #发送消息一次
    [+] ...connected from: 127.0.0.1: 33170    #发送消息一次
    
    # 终端2
    $ ./tsTclntSS.py 
    >>>hello
    [Mon Nov 27 14:02:51 2017] hello
    >>>good bey!
    [Mon Nov 27 14:02:53 2017] good bey!
    >>>exit
    

    相关文章

      网友评论

          本文标题:socketserver模块

          本文链接:https://www.haomeiwen.com/subject/uexdbxtx.html