initial commit

This commit is contained in:
2021-07-12 12:51:22 +02:00
parent 5cf99829a5
commit 4ceb5cf78e
7 changed files with 557 additions and 0 deletions

0
src/server22/__init__.py Normal file
View File

69
src/server22/server22.py Normal file
View File

@@ -0,0 +1,69 @@
#!/usr/bin/python3
'''
server.
Usage:
server.py <port> [options]
Arguments:
<port> Specify the port
Options:
--sleep <sleep> Specify how often data will be send (secs).
'''
import socket
import time
import random
import sys
import string
import docopt
def string_generator(string_len):
chars = list(string.ascii_lowercase) + list(string.ascii_uppercase) + list(string.digits)
list_of_chars = [random.choice(chars) for _ in range(string_len)]
final_string = ''.join(list_of_chars)
return final_string
def send_data(c, sleep_time):
while 1:
string_len = random.randint(1, 120)
generated_string = string_generator(string_len)
try:
c.send(generated_string.encode())
except BrokenPipeError:
print('Connection failed.')
return 0
time.sleep(sleep_time)
def main():
args = docopt.docopt(__doc__)
port_arg = args['<port>']
sleep_time = args['--sleep']
sleep_time = float(sleep_time) if sleep_time else 1
port = int(port_arg)
s = socket.socket()
s.bind(('', port))
s.listen()
print('Socket is listening.')
while 1:
try:
print('Waiting for connection.')
c, addr = s.accept()
if c:
print('Got connection from: ', addr)
print('Socket data: ', c)
send_data(c, sleep_time)
except KeyboardInterrupt:
print('Program ends by user request.')
break
s.close()
return 0
if __name__ == '__main__':
sys.exit(main())