python3 unixsockets

This commit is contained in:
Alexander Popov 2023-09-03 11:41:52 +03:00
parent ffd578ad39
commit 2c0c22538d
Signed by: iiiypuk
GPG Key ID: E47FE0AB36CD5ED6
2 changed files with 71 additions and 0 deletions

View File

@ -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()

View File

@ -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()