Skip to main content

A universal communication engine

Project description

socket.engine

Installation

Python:

pip install socket.engine

This library requires Python3. It was tested extensively on Python 3.7.5 with Ubuntu 19.04.

How to use

Host

from socketengine import host

h = host()
h.start()

while True:
	data = h.get_ALL("test")

	if data is not None:
		for item in data:
			print(item)
			break

h.close()

Please Note: Starting a socket.engine socket in Python is a blocking action and will not finish until the socket is opened.

Client

from socketengine import client

c = client()
c.start()

c.write("test", "client is connected!")

c.close()

Socket.engine will automatically store the most recent piece of data received over a channel. This data is accessible via the get method. Socket.engine runs on a separate thread from the rest of your program and will therefore be constantly reading from the data socket.

Documentation

Host

Host Constructor:

host(addr='127.0.0.1', port=8080, timeout=2, size=256, open=True)
	addr = Address to host the socket connection
	port = Port connection to use with socket
	timeout = Sets the standard timeout of a socket (in seconds)
	size = Default read size of socket
	open = Open the socket automatically on connection (note: this does not "start" the socket thread)

Host Methods:

host.set_timeout(time):
	Sets the timeout of a socket (in seconds)
host.start():
	Starts the socket thread. SHOULD ONLY BE CALLED ONCE
host.get_ALL(channel):
	Reads all data from a specified channel. Returns a list of all responses (or [] if no responses)
host.getClients():
	Returns a list of connected clients as socket objects
host.writeLock_ALL(channel, data):
	Writes data on the specified channel to all clients. Uses a lock on each connection
host.write_ALL(channel, data):
	Writes data on the specified channel to all clients
host.writeImgLock_ALL(data): 
	Writes image data over the "image" channel to all clients. This method optimized for sending entire images. Uses a lock on each connection
host.writeImg_ALL(data): 
	Writes image data over the "image" channel to all clients. This method optimized for sending entire images.
host.close(): 
	Closes the connection with each client

Client

Client Constructor:

client(addr='127.0.0.1', port=8080, timeout=2, size=256, open=True)
	addr = Address the host is using
	port = Port connection on host
	timeout = Sets the standard timeout of a socket (in seconds)
	size = Default read size of socket
	open = Open the socket automatically on connection (note: this does not "start" the socket thread)

Client Methods:

client.set_timeout(time):
	Sets the timeout of a socket (in seconds)
client.start():
	Starts the socket thread. SHOULD ONLY BE CALLED ONCE
client.get(channel):
	Reads all data from a specified channel
client.writeLock(channel, data):
	Writes data on the specified channel. Uses a lock on each connection
client.write(channel, data): 
	Writes data on a specified channel
client.writeImgLock(data):
	Writes image data over the "image" channel. This method optimized for sending entire images. Uses a lock on each connection
client.writeImg(data):
	Writes image data over the "image" channel. This method optimized for sending entire images.
client.close():
	Closes the connection

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

socket.engine-0.3.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

socket.engine-0.3.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file socket.engine-0.3.0.tar.gz.

File metadata

  • Download URL: socket.engine-0.3.0.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.5

File hashes

Hashes for socket.engine-0.3.0.tar.gz
Algorithm Hash digest
SHA256 750789583adfe868dc8a1c627d27f5e7dd16452a27e981df3e49639bc6d55541
MD5 6e6b4987cf58154ac017b2964686a3a8
BLAKE2b-256 41e45e6c74948d3916ddb4a2382e18f56a0bb8185f964a8668ce601b36acba30

See more details on using hashes here.

File details

Details for the file socket.engine-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: socket.engine-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.5

File hashes

Hashes for socket.engine-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a53b75e4b8169e00e65351143bedf3c53b869089356056fe7613e879706aeb9f
MD5 3145ee338f655a58a5931deedceac4d1
BLAKE2b-256 d77fe9d403ac6d00d3611fcedaf60c1e71e8ce5d6ec74fa5b1ea9ad7262b20fc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page