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

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")
# 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.1.1.tar.gz (4.9 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.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: socket_kit-0.1.1.tar.gz
  • Upload date:
  • Size: 4.9 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.1.tar.gz
Algorithm Hash digest
SHA256 d577b1c14e3d19f1f7828ac947f428094220f0ef068492ac2efd93b0467c7575
MD5 6faf065c8bbd2f116397be2867d92531
BLAKE2b-256 13aa33575c31cd4ca6927d7ee1d536721201f88dfb8396e8841d422d7b5ad402

See more details on using hashes here.

File details

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

File metadata

  • Download URL: socket_kit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a7f766a4155f181b03cfdcc998e5e8d438f2cf9bd28fc7b52bc4426dcf3f26c5
MD5 ed706548fc484528f5125984cfb1b19c
BLAKE2b-256 b240150107d8552462284cf775c163b9a416856e5bb9252b092a9471281f14ac

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