Skip to content

Instantly share code, notes, and snippets.

@teepark
Last active January 3, 2017 21:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save teepark/2cf76955f6c969c1d138ca00b194f320 to your computer and use it in GitHub Desktop.
Save teepark/2cf76955f6c969c1d138ca00b194f320 to your computer and use it in GitHub Desktop.
how fast are unix domain sockets with long-lived connections?
#!/usr/bin/env python
import socket
import time
server_addr = '127.0.0.1'
server_port = 5000
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((server_addr, server_port))
duration = 1
end = time.time() + duration
msgs = 0
print 'Receiving messages...'
while time.time() < end:
data = sock.recv(12)
msgs += 1
print 'Received {} messages in {} second(s).'.format(msgs, duration)
#!/usr/bin/env python
import socket
server_addr = '127.0.0.1'
server_port = 5000
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind((server_addr, server_port))
sock.listen(0)
print 'Server ready.'
while True:
conn, _ = sock.accept()
try:
while True:
conn.send('Hello there!')
except socket.error:
pass
#!/usr/bin/env python
import socket
import time
server_addr = '/tmp/uds_server.sock'
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.connect(server_addr)
duration = 1
end = time.time() + duration
msgs = 0
print 'Receiving messages...'
while time.time() < end:
data = sock.recv(12)
msgs += 1
print 'Received {} messages in {} second(s).'.format(msgs, duration)
#!/usr/bin/env python
import os
import socket
server_addr = '/tmp/uds_server.sock'
if os.path.exists(server_addr):
os.unlink(server_addr)
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.bind(server_addr)
sock.listen(0)
print 'Server ready.'
while True:
conn, _ = sock.accept()
try:
while True:
conn.send('Hello there!')
except socket.error:
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment