Metadata-Version: 2.1
Name: socket_for_humans
Version: 0.0.2
Summary: A simplified socket setup suitable for many/most lightweight client server programs. The Python standard library TCP/IP 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.
Home-page: https://gitlab.com/koyaanisqatsi.naqoyqatsi1/socket_for_humans
Author: koyaanisqatsi.naqoyqatsi@pm.me
Author-email: koyaanisqatsi.naqoyqatsi@pm.me
License: MIT
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:
        ```python
        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()
            # msg is the msg recieved by the server.
            # conn is a Connection instance used to continue rend and receive with client
            # addr is the clients address like (ip, port)
            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:
        
        ```python
        from socket_for_humans import Connection
        
        addr = ('127.0.0.1', 12345)
        my_client = Connection(addr)
        
        msg = "a question to the server"
        print("Client sending: " + msg)
        my_client.send(msg)
        reply = my_client.recv()
        print("Client received: " + reply)
        
        msg2 = "a further question to the server"
        print("Client sending: " + msg2)
        my_client.send(msg2)
        reply2 = my_client.recv()
        print("Client received: " + reply2)
        # continue to use my_client to send and receive until the purpose is satisfied.
        my_client.close()
        ```
Keywords: networking,TCP/IP,simplified,client,server,socket
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: System :: Networking
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
