Usage
For usage in code, there is the class rcon.Client
.
from rcon import Client
with Client('127.0.0.1', 5000, passwd='mysecretpassword') as client:
response = client.run('some_command', 'with', 'some', 'arguments')
print(response)
Async support
If you want to use RCOn in an asynchronous environment, use rcon.rcon()
.
from rcon import rcon
response = await rcon('some_command', 'with', 'some', 'arguments',
host='127.0.0.1', port=5000, passwd='mysecretpassword')
print(response)
Configuration
rconclt servers can be configured in /etc/rcon.conf
.
The configuration file format is:
[<server_name>]
host = <hostname_or_ip_address>
port = <port>
passwd = <password>
The passwd
entry is optional.
rconclt
rconclt is an RCON client script to communicate with game servers via the RCON protocol using the shell. To communicate with a server, run:
rconclt [options] <server> <command> [<args>...]
rconshell
rconshell is an interactive RCON console to interact with game servers via the RCON protocol. To start a shell, run:
rconshell [server] [options]
Handling connection timeouts.
You can specify an optional timeout=<sec>
parameter to allow a connection attempt to time out.
If a timeout is reached during a connection attempt, it will raise a socket.timeout exception.
The following example will raise a connection timeout after 1.5 seconds:
try:
with Client('127.0.0.1', 5000, timeout=1.5) as client:
<do_stuff>
except socket.timeout as timeout:
<handle_connection_timeout>