mbed-os/workspace_tools/host_tests/tcpecho_server.py

35 lines
965 B
Python

from SocketServer import BaseRequestHandler, TCPServer
from time import time
from private_settings import LOCALHOST
MAX_INDEX = 126
MEGA = float(1024 * 1024)
class TCP_EchoHandler(BaseRequestHandler):
def handle(self):
print "\nconnection received"
start = time()
bytes = 0
index = 0
while True:
data = self.request.recv(1024)
if not data: break
bytes += len(data)
for n in map(ord, data):
if n != index:
print "data error %d != %d" % (n , index)
index += 1
if index > MAX_INDEX:
index = 0
self.request.sendall(data)
t = time() - start
b = float(bytes * 8) * 2
print "Throughput: (%.2f)Mbits/s" % ((b/t)/MEGA)
server = TCPServer((LOCALHOST, 7), TCP_EchoHandler)
print "listening for connections"
server.serve_forever()