Server (config): moving variables to main program · feberts/python-game-server@9484cc8 · GitHub
Skip to content

Commit 9484cc8

Browse files
committed
Server (config): moving variables to main program
1 parent 57ffe0b commit 9484cc8

3 files changed

Lines changed: 27 additions & 27 deletions

File tree

‎server/config.py‎

Lines changed: 12 additions & 15 deletions

‎server/game_server.py‎

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
class ClientDisconnect(Exception): pass
4242
class RequestSizeExceeded(Exception): pass
4343

44+
connection_timeout = 60 # seconds, timeout for tcp transactions
45+
buffer_size = 4096 # bytes, corresponds to client-side buffer size value
46+
4447
def handle_connection(conn, client):
4548
"""
4649
Handling a connection.
@@ -53,33 +56,32 @@ def handle_connection(conn, client):
5356
5457
Data is expected to be received in JSON format and it is also sent back to
5558
the client in JSON format. The connection has a server side timeout and the
56-
amount of data accepted in a single request is limited by the server. The
57-
corresponding parameters are defined in the config module. Whenever
58-
possible, error messages are sent back to the client.
59+
amount of data accepted in a single request is limited by the server.
60+
Whenever possible, error messages are sent back to the client.
5961
6062
Parameters:
6163
conn (socket or SSLSocket): connection socket
6264
client (tuple(str, int)): client IP and port
6365
"""
6466
ip, port = client
6567
log = utility.ServerLogger(ip, port)
66-
log.info('connection accepted')
68+
log.tcp('connection accepted')
6769

68-
conn.settimeout(config.connection_timeout)
70+
conn.settimeout(connection_timeout)
6971

7072
try:
7173
try:
7274
# receive data from client:
7375
request = bytearray()
7476

7577
while True:
76-
data = conn.recv(config.buffer_size)
78+
data = conn.recv(buffer_size)
7779
if not data: raise ClientDisconnect
7880
request += data
7981
if len(request) > config.request_size_max: raise RequestSizeExceeded
8082
if request.endswith(b'EOT\0'): break
8183

82-
log.info(f'received {len(request)} bytes: {request}')
84+
log.tcp(f'received {len(request)} bytes: {request}')
8385
request = request[:-4] # strip EOT
8486
request = json.loads(request.decode())
8587

@@ -122,7 +124,7 @@ def handle_connection(conn, client):
122124
response = json.dumps(response).encode()
123125

124126
conn.sendall(response)
125-
log.info(f'responding: {response}')
127+
log.tcp(f'responding: {response}')
126128

127129
except BrokenPipeError:
128130
log.error('connection closed by client after sending request')
@@ -132,7 +134,7 @@ def handle_connection(conn, client):
132134
log.error('unexpected exception on the server:\n' + traceback.format_exc())
133135
finally:
134136
conn.close()
135-
log.info('connection closed by server')
137+
log.tcp('connection closed by server')
136138

137139
def secure_socket(socket):
138140
"""
@@ -153,6 +155,7 @@ def secure_socket(socket):
153155
context.load_cert_chain(
154156
certfile=utility.abs_path(config.tls_cert),
155157
keyfile=utility.abs_path(config.tls_key))
158+
156159
print('TLS enabled')
157160

158161
return context.wrap_socket(socket, server_side=True)

‎server/utility.py‎

Lines changed: 3 additions & 3 deletions

0 commit comments

Comments
 (0)