initial commit
This commit is contained in:
0
src/server22/__init__.py
Normal file
0
src/server22/__init__.py
Normal file
69
src/server22/server22.py
Normal file
69
src/server22/server22.py
Normal 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())
|
||||
Reference in New Issue
Block a user