Add queueLengthWait, tweak bufferSize

This commit is contained in:
Fierelier 2021-04-20 16:32:56 +02:00
parent 9b4175dada
commit d926143913
2 changed files with 6 additions and 5 deletions

View File

@ -23,8 +23,9 @@ import socket
import threading import threading
import queue import queue
bufferSize = 50000 # buffer size in bytes bufferSize = 10000 # buffer size in bytes
maxAccumulatedData = 50*1000*1000 # How much data can be in an outbound thread's queue at maximum before the connection is closed? queueLengthWait = 10 # How many buffers can be in the queue before waiting? 0 for infinite, maxAccumulatedData comes into play. Raise for smoother playback, lower for less delay.
maxAccumulatedData = 50*1000*1000 # If queueLengthWait is 0, how much data can be in an outbound thread's queue at maximum before the connection is closed?
timeout = 15 # timeout in seconds timeout = 15 # timeout in seconds
connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM) connection = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@ -41,7 +42,7 @@ class stdoutThread(threading.Thread):
class stdinThread(threading.Thread): class stdinThread(threading.Thread):
def __init__(self,connection): def __init__(self,connection):
threading.Thread.__init__(self) threading.Thread.__init__(self)
self.queue = queue.Queue() self.queue = queue.Queue(queueLengthWait)
self.connection = connection self.connection = connection
def run(self): def run(self):
@ -50,7 +51,7 @@ class stdinThread(threading.Thread):
accumulatedData = self.queue.qsize() * bufferSize accumulatedData = self.queue.qsize() * bufferSize
print("Accumulated MB: " +str(accumulatedData/1000000)) print("Accumulated MB: " +str(accumulatedData/1000000))
if accumulatedData > maxAccumulatedData: if queueLengthWait < 1 and accumulatedData > maxAccumulatedData:
print("Accumulated data limit reached. Closing.") print("Accumulated data limit reached. Closing.")
self.connection.close() self.connection.close()
self.queue = False self.queue = False

View File

@ -36,7 +36,7 @@ connectionsLock = threading.Lock()
serverAddr = ("127.0.0.1",61920) serverAddr = ("127.0.0.1",61920)
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
bufferSize = 50000 # Buffer size in bytes bufferSize = 10000 # Buffer size in bytes
timeout = 15 # How long to wait for a connection to respond before timing out? timeout = 15 # How long to wait for a connection to respond before timing out?
maxClients = 20 # How many clients can be connected at maximum? maxClients = 20 # How many clients can be connected at maximum?
maxClientsPerIP = 3 # How many clients can be connected at maximum, per IP? maxClientsPerIP = 3 # How many clients can be connected at maximum, per IP?