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

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

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")

Server Side

import socket_kit

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

Client Side

import socket_kit

socket_kit.userLogin(client, "username", "password")
# 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

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

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

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.1.0.tar.gz (2.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_kit-0.1.0-py3-none-any.whl (2.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: socket_kit-0.1.0.tar.gz
  • Upload date:
  • Size: 2.7 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.1.0.tar.gz
Algorithm Hash digest
SHA256 6e1ef86b2938443b55d00e08d46bb513c5e87b6c3140d3a5397113acb16458e2
MD5 03f3ad519191cb3acc97a141362c1924
BLAKE2b-256 15464ace09dc4b07b5bfe086c7b208f49bd88ab805e2f2f253deb87e52a61615

See more details on using hashes here.

File details

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

File metadata

  • Download URL: socket_kit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.8 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62641c96efd00a235f566c05e7adf83de0fd0e9b237220bbaaf4ce6cfde69bf5
MD5 21b5caec78a5d7e12792472f17cf96af
BLAKE2b-256 b4ff5d088e9792d89840313df5c655d2485df3777235b58ca6d600b4e0a1bd4b

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