diff --git a/snipplets/code/Python/unixsockets/client.py b/snipplets/code/Python/unixsockets/client.py new file mode 100644 index 0000000..efef016 --- /dev/null +++ b/snipplets/code/Python/unixsockets/client.py @@ -0,0 +1,22 @@ +import socket +import os + +# Set the path for the Unix socket +socket_path = '/tmp/myapp.sock' + +# Create the Unix socket client +client = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + +# Connect to the server +client.connect(socket_path) + +# Send a message to the server +message = 'Hello from the client!' +client.sendall(message.encode()) + +# Receive a response from the server +response = client.recv(1024) +print(f'Received response: {response.decode()}') + +# Close the connection +client.close() diff --git a/snipplets/code/Python/unixsockets/server.py b/snipplets/code/Python/unixsockets/server.py new file mode 100644 index 0000000..f0f230e --- /dev/null +++ b/snipplets/code/Python/unixsockets/server.py @@ -0,0 +1,49 @@ +import socket +import sys +import os +import base64 + +def prep(): + srv_sock = '/tmp/myapp.sock' + try: + os.unlink(srv_sock) + except: + if os.path.exists(srv_sock): + raise + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + try: + print('Setting up server socket on %s\n' % srv_sock) + sock.bind(srv_sock) + sock.listen(1) + print('Success, listening on unix domain socket %s\n' % srv_sock) + return(sock) + except Exception as e: + print(e) + return False + +def main(): + sock = prep() + if not sock: + return False + while True: + connection, client_address = sock.accept() + try: + buffer = '' + rcvd_bytes = 0 + while True: + data = connection.recv(1024) + rcvd_bytes = rcvd_bytes + len(data) + if not data: + print('Finished receiving data\n') + break + buffer = buffer + data.decode() + buffer = buffer[:-1] + # print(base64.b64encode(buffer.rstrip('\x00'))) + print('Total bytes received bytes: %s\n' % len(buffer)) + finally: + print('Closing the connection\n') + connection.close() + print('Connection closed\n') + +if __name__=="__main__": + main()