Skip to main content

A utility with concise and more fluent code in socket programming

Project description

socket-kit

socket-kit is a utility with concise and more fluent code in socket programming. It handles the job of creating server/client, database operations, transferring data and file over network, as well as OpenCV support.

Server and Client

from socket_kit import socket_kit

server = createServer("192.168.31.138", 9990, clientNum=3)
server = createdLocalhostServer(9990, clientNum=3)
server = createdLocalIPServer(9990, clientNum=3)
client = createClient("192.168.31.138", 9990)

Database

Database Side

from socket_kit import socket_kit

database = socket_kit.MySQLDatabase("database_name", host="localhost" username="root", password="password")

database.createTable("table_name", """
    id INTEGER PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL
""")

database.createUserTabel()
database.createUser("username", "password")
token = socket_kit.randomToken()
database.createUser(token)

Server Side

from socket_kit import socket_kit

if socket_kit.userAuthenticate(client, database):
    print("Connected with", address)
else: continue

Client Side

from socket_kit import socket_kit

socket_kit.userLogin(client, "username", "password")
socket_kit.userLogin(client, "token")
# login in CLI
socket_kit.userLoginCLI(client)

Data Transfer

To concentrate on data transfer, the code below will ignore the concept of server/client, because the sender/receiver can appear at both depending on your requirement.

Sender

from socket_kit import socket_kit

# send pure data
data = b""
message = socket_kit.packData(data)
client.sendall(message)

# send file
message = socket_kit.packFile("movieFile.mp4")
client.sendall(message)

# send frame (OpenCV)
message = socket_cv.packFrame(frame)
client.sendall(message)

Receiver

from socket_kit import socket_kit

# receive pure data
data = socket_kit.receiveData(client)

# receive file
socket_kit.receiveFile("savedFile.mp4", client)

# receive frame (OpenCV)
frame = socket_kit.receiveFrame(client)

Stream Receiver

message = b""
while True:
    # receive stream pure data
    data, message = socket_kit.receiveStreamData(message, client)
    # receive stream frame (OpenCV)
    frame, message = socket_kit.receiveStreamFrame(message, client)

OpenCV

from socket_kit import socket_kit

capture = socket_kit.createCapture()

# default .mp4 with Codec H264
writer = socket_kit.createWriter(capture, "saveMovie.mp4")
socket_kit.saveFrameToMovie(frame, writer)

socket_kit.saveFrameToPhoto(frame, "saveMovie.png")

socket_kit.showFrame("frame", frame)

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_kit-0.2.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

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

socket_kit-0.2.0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file socket_kit-0.2.0.tar.gz.

File metadata

  • Download URL: socket_kit-0.2.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for socket_kit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 46461c71ac4c2967b697fb8dcde85bdea59bd618408d69504cfbfe75fd8c6d8f
MD5 796663fd7eb0efd7375c3d1ffae45fe1
BLAKE2b-256 93bd568304d5bf8123f7236f0c6d4b83f11de892b2001f5d2ddb2d11257c2c91

See more details on using hashes here.

File details

Details for the file socket_kit-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: socket_kit-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for socket_kit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 51b4954d5efa814b3633d740b924c9a3ec1db3c3e034ecf5fdeb4f4a8d044c1b
MD5 baf9e4a832a5bca2d932fde60bd04c30
BLAKE2b-256 482d84d0607ccb409344a76251c1b6d4326f9d7dcfe0278f1f48972b922ae8b8

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