1*4882a593Smuzhiyun#!/usr/bin/env python3 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunimport sys, os, os.path, getopt 7*4882a593Smuzhiyunimport socket, time 8*4882a593Smuzhiyunimport subprocess 9*4882a593Smuzhiyunimport select 10*4882a593Smuzhiyun 11*4882a593Smuzhiyundef read(sock, n): 12*4882a593Smuzhiyun buf = b'' 13*4882a593Smuzhiyun while len(buf) < n: 14*4882a593Smuzhiyun rem = n - len(buf) 15*4882a593Smuzhiyun try: s = sock.recv(rem) 16*4882a593Smuzhiyun except (socket.error) as e: return b'' 17*4882a593Smuzhiyun buf += s 18*4882a593Smuzhiyun return buf 19*4882a593Smuzhiyun 20*4882a593Smuzhiyundef send(sock, s): 21*4882a593Smuzhiyun total = len(s) 22*4882a593Smuzhiyun count = 0 23*4882a593Smuzhiyun while count < total: 24*4882a593Smuzhiyun try: n = sock.send(s) 25*4882a593Smuzhiyun except (socket.error) as e: n = 0 26*4882a593Smuzhiyun if n == 0: 27*4882a593Smuzhiyun return count; 28*4882a593Smuzhiyun count += n 29*4882a593Smuzhiyun return count 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun 32*4882a593SmuzhiyunserverPort = int(sys.argv[1]) 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun# create active socket 35*4882a593Smuzhiyunsock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) 36*4882a593Smuzhiyuntry: 37*4882a593Smuzhiyun sock.connect(('::1', serverPort)) 38*4882a593Smuzhiyunexcept socket.error as e: 39*4882a593Smuzhiyun sys.exit(1) 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunbuf = b'' 42*4882a593Smuzhiyunn = 0 43*4882a593Smuzhiyunwhile n < 1000: 44*4882a593Smuzhiyun buf += b'+' 45*4882a593Smuzhiyun n += 1 46*4882a593Smuzhiyun 47*4882a593Smuzhiyunsock.settimeout(1); 48*4882a593Smuzhiyunn = send(sock, buf) 49*4882a593Smuzhiyunn = read(sock, 500) 50*4882a593Smuzhiyunsys.exit(0) 51