Skip to main content

A Python module designed to simplify the implementation of socket-based server-client communication

Project description

super-easy-socket

super-easy-socket is a Python module designed to simplify the implementation of socket-based server-client communication. It provides an easy-to-use API for creating servers and clients that can send and receive messages, handle custom functions, and manage connections.

Features

  • Easy-to-use server and client classes.
  • Support for custom functions associated with specific keywords.
  • Automatic ping and pong for connection health monitoring.
  • Threaded handling of client connections on the server side.

Installation

You can install super-easy-socket using pip:

pip install super-easy-socket

Usage

Server Side

The server listens for incoming client connections and can handle custom functions based on keywords.

Example Server (server.py)

from super_easy_socket import Server

# Define custom functions to handle specific keywords
def handle_message(client, payload):
    print(f"Received from {client.ip}: {payload}")
    if payload == 'hello':
        client.send('response', 'Hello, client!')
    elif payload == 'bye':
        client.send('response', 'Goodbye, client!')
        client.close_connection()

# Create a server object
my_server = Server(('127.0.0.1', 8080), 5)

# Associate functions with keywords
my_server.New_Function('message', handle_message)

# Start the server
my_server.start(ping=True)

Client Side

The client connects to a server and can send messages or handle responses based on custom functions.

Example Client (client.py)

from super_easy_socket import Client

# Define custom functions to handle specific keywords from the server
def handle_response(server, payload):
    print(f"Received from server: {payload}")
    if payload == 'Goodbye, client!':
        client.close_connection()

# Define a function to run when connected to the server
def on_connect(client):
    client.send('message', 'hello')

# Create a client object
my_client = Client(('127.0.0.1', 8080))

# Associate functions with keywords
my_client.New_Function('response', handle_response)
my_client.on_connect(on_connect)

# Connect to the server
my_client.connect(ping=True)

How to Use

Server Class

Creating a Server

my_server = Server(('127.0.0.1', 8080), 5)
  • ('127.0.0.1', 8080): Server IP address and port.
  • 5: Maximum number of clients.

Associating Functions with Keywords

my_server.New_Function('message', handle_message)
  • 'message': Keyword that triggers the function.
  • handle_message: Function to be executed when the keyword is received.

Starting the Server

my_server.start(ping=True)
  • ping=True: Enable ping for connection health monitoring.

Client Class

Creating a Client

my_client = Client(('127.0.0.1', 8080))
  • ('127.0.0.1', 8080): Server IP address and port.

Associating Functions with Keywords

my_client.New_Function('response', handle_response)
  • 'response': Keyword that triggers the function.
  • handle_response: Function to be executed when the keyword is received.

Setting a Function to Run on Connect

my_client.on_connect(on_connect)
  • on_connect: Function to run when the client successfully connects to the server.

Connecting to the Server

my_client.connect(ping=True)
  • ping=True: Enable ping for connection health monitoring.

Sending Messages

Messages are sent using the send method, which associates a keyword with a message payload. The receiving side will use the associated keyword to trigger the corresponding function.

Server Side Sending

To send a message from the server to the client:

client.send('response', 'Hello, client!')
  • 'response': The keyword associated with the message.
  • 'Hello, client!': The message payload.

Client Side Sending

To send a message from the client to the server:

my_client.send('message', 'hello')
  • 'message': The keyword associated with the message.
  • 'hello': The message payload.

License

This module is licensed under the MIT License.

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

super-easy-socket-0.0.2.tar.gz (2.2 MB view hashes)

Uploaded Source

Supported by

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