Skip to main content

Small script to simplify network communication

Project description

Please note that this branch is just temporary module of sock module. If the pull request is merged, this branch will be removed.

sock-websocket

Small script to simplify network communication.

Something like telnetlib, but for clean TCP/UDP (no command sequences, \r\n newlines, etc.)

As an alternative, consider pwntools which contains unified interface (tubes) for communications with sockets, processes, etc. See tubes API.

Current development only supports python 3. Old python 2 version is available at the py2 branch.

Installation

$ pip3 install sock-websocket

For development or building from this repository, poetry is needed.

Usage

TCP Client

from sock import *

f = Sock("some.cool.servi.ce:3123", timeout=10)
# or IPv6
f = Sock6("::1 3123", timeout=3)
# or already existing socket
f = Sock.from_socket(some_socket)  # or toSock(some_socket)
# or UDP/IPv6
f = SockU6("::1 3123", timeout=3)
# or WebSocket
# For using WebSock, the websocket-client module must be installed (pip install websocket-client).
f = WebSock("ws://localhost:3123")

# wait for prompt (skip banner for example)
# the prompt itself will be skipped (and returned) too
f.read_until("> ", timeout=3)  # read_until_re also exists

f.send("flip coin\n")

# skip until regexp
result1 = f.skip_until_re(r"You've got (heads|tails)")  # skip_until(str) also exists

# read until also consumes matched part
f.read_until_re(r"You've g[oe]t ")  # read_until(str) also exists

# read specific number of bytes
result2 = f.read_nbytes(5)

assert result1 == result2

# alias for f.send(s + "\n")
f.send_line("random please")

# read one packet and flush buffers
print(f.read_one())

# non-blocking read (flush buffers)
print(f.read_one(0))

# read until disconnect
print(f.read_all())

About

Author: hellman

License: 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

sock_websocket-0.6.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

sock_websocket-0.6.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file sock_websocket-0.6.0.tar.gz.

File metadata

  • Download URL: sock_websocket-0.6.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.6.9 Linux/5.4.0-51-generic

File hashes

Hashes for sock_websocket-0.6.0.tar.gz
Algorithm Hash digest
SHA256 ab2f61310d53ba434806476316f6ed6d0592e6f95b0ba48951ba6611bdfc2caf
MD5 f3fbaf0e219c185ce326501ed9423124
BLAKE2b-256 730e52bbbeec823acf524342951d6d350d9f9f78199a419b19925e728bd212e5

See more details on using hashes here.

File details

Details for the file sock_websocket-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: sock_websocket-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.6.9 Linux/5.4.0-51-generic

File hashes

Hashes for sock_websocket-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba9291c38bb24e5ae186402efe93d6b2cfbc1bd7c44069d306cba75b3c0dde0e
MD5 788d3c37624fb6e7337a342cda76498d
BLAKE2b-256 dc98ae9efb6c27d635e1114f8421aae0c8a7494a53ca200c52786aaf5869296b

See more details on using hashes here.

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