Skip to main content

A simplified socket setup suitable for many/most lightweight client server programs.The python standard library socket module has a relatively steep learning curve.This module is intended to help get most projects up and running quickly by wrapping the standard library socket module in an easy to use interface.

Project description

socket_for_humans

A simplified socket setup suitable for many/most lightweight client server programs. The python standard library socket module has a relatively steep learning curve. This module will help get most projects up and running quickly by wrapping the Python standard library socket module in an easy to use interface.

socket_for_humans is the communications module used in the simple_gossip python gossip protocol.

socket_for_humans provides two types of objects Server and Connection. The Server object is used to listen for new connections, while the Connection object is used for sending and receiving on both sides of the socket communications once a connection is established.

By default the send and receive functions take/return str rather than bytes, which is probably what most users initially want, if you want bytes then use str_mode=False in the object constructors.

Usage:

Essential usage follows this pattern:

Example server code:

from socket_for_humans import Server

addr = ('127.0.0.1', 12345)
my_server = Server(addr)
while True:
    msg, conn, addr = my_server.get_next()
    if msg:
        # do whatever you need to do with received msg
        print(msg)
        conn.send("here is my reply")
        msg2 = conn.recv()
        print(msg2)
        conn.send("here is my further reply, if you really want to know")
        # continue to use conn to send and receive until the purpose is satisfied.
        conn.close()

Example client code:

from socket_for_humans import Connection

addr = ('127.0.0.1', 12345)
my_client = Connection(addr)
my_client.send("a question to the server")
reply = my_client.recv()
# continue to use my_client to send and recieve until the purpose is satisfied
my_client.close()

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_for_humans-0.0.1.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

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

socket_for_humans-0.0.1-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file socket_for_humans-0.0.1.tar.gz.

File metadata

  • Download URL: socket_for_humans-0.0.1.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.5

File hashes

Hashes for socket_for_humans-0.0.1.tar.gz
Algorithm Hash digest
SHA256 24f3638df0bfb2b07f865199c77af86244038a0fc38e307cc8899a8e9e1fc09e
MD5 bb558a327b2981fcb65f162691450bd8
BLAKE2b-256 6cb2305955f08dbca09e123d642932585437717646b7888bc8f982635af03b26

See more details on using hashes here.

File details

Details for the file socket_for_humans-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: socket_for_humans-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.5

File hashes

Hashes for socket_for_humans-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b738b7beb2a56a9aa1ff12666a35c7bcd0152d11003a10509ae8b2297767c360
MD5 8a1943a9366da3cbf99cdc4678b0323e
BLAKE2b-256 2d92dbf78c5a26f11a55dfcc4345c19926019c6363587dff0dbd726368d0e3b1

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