Provides a subclass of socket.socket that enables a TCP/IP socket that can send and recieve Numpy arrays with the same interface as a regular Python socket.
The subclass of socket.socket provides three key method overrides. All other socket methods are untouched.
sendall- takes a Numpy array as an argument to send an Arrayrecv- outputs a Numpy array (len() == 0if no data received)
With a large value for bufsize in recv() there it is not guaranteed that multiple small arrays will be fully received. You should always set your bufsize to be small enough that it will not "reach over" to the next array.
pip install numpysocket
There are two separate examples showing how to create a client and sever using a NumpySocket
./examples/Simple shows a server which closes after the client disconnects.
In terminal 1, run:
python simple_server.py
In terminal 2, run:
python simple_client.py
./examples/OpenCV shows an actual usecase for this library (sending video frames). This example requires installing additional requirements (./examples/openCV/requirements.txt).
This example also shows how to create a persistent server which allows for new clients to connect after old clients disconnects.
In terminal 1, run:
python cv_server.py
In terminal 2, run:
python cv_client.py
Kill terminal 2 and re-run the command and the server will allow for the new connection.
pip install uv
uv venv
uv pip install -e .