
Security News
MCP Community Begins Work on Official MCP Metaregistry
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
ACUDPClient is a Python module that can be used to communicate with an Assetto Corsa dedicated server. Using its UDP protocol, real time telemetry, lap timings and session information is pushed to the client. A few actions, like sending/broadcasting messages are also available.
$ python setup.py install
or
$ pip install acudpclient
(virtualenv is recommended)
$ nosetests
Start the ACServer with UDP active.
Capture the data using tcpdump
:
$ tcpdump -w /tmp/ac_out.pcap -s0 -i lo -n udp dst port 10000
$ tshark -r /tmp/ac_out.pcap -T fields -e data | tr -d '\n' | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie' > /tmp/ac_out
/tmp/ac_out
contains binary data sent by ACServer.The client should be initialized like this:
from acudpclient.client import ACUDPClient
client = ACUDPClient(port=10000, remote_port=10001, host='127.0.0.1')
client.listen()
remote_port
and host
are used to send data to the AC serverlisten()
will bind the server socket to port
.Server events can be handled directly or by event subscribers. In
both cases, get_next_event()
method must be invoked in the
application's main loop.
When handling events directly, a call to get_next_event()
might return None
, meaning there's no event available at that
point (the internal ACUDPClient
socket is non-blocking).
When creating a subscriber class, specific events can be handled by creating
methods with the following naming scheme on_<event_type>(self, event)
where event_type
is any of the types found in
acudpclient.protocol.ACUDPConst
class (see Usage).
Events passed to on_<event_type>(self, event)
are dictionaries containing
different keys depending on the event's type. Refer to acudpclient.client import ACUDPClient
to see which keys are available per event type.
Handle events directly:
from acudpclient.client import ACUDPClient
client = ACUDPClient(port=10000, remote_port=10001)
client.listen()
client.get_session_info()
while True:
event = client.get_next_event(call_subscribers=False)
print event
Handle events with a subscriber:
from acudpclient.client import ACUDPClient
class ACEventHandler(object):
def on_ACSP_LAP_COMPLETED(self, event):
print event
def on_ACSP_NEW_SESSION(self, event):
print event
def on_ACSP_NEW_CONNECTION(self, event):
print event
handler = ACEventHandler()
client = ACUDPClient(port=10000, remote_port=10001)
client.listen()
client.subscribe(handler)
while True:
client.get_next_event()
FAQs
Assetto Corsa UDP Client
We found that acudpclient demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
Research
Security News
Socket uncovers an npm Trojan stealing crypto wallets and BullX credentials via obfuscated code and Telegram exfiltration.
Research
Security News
Malicious npm packages posing as developer tools target macOS Cursor IDE users, stealing credentials and modifying files to gain persistent backdoor access.