Skip to content

Instantly share code, notes, and snippets.

@nwg
Created October 11, 2012 23:18
Show Gist options
  • Save nwg/3876252 to your computer and use it in GitHub Desktop.
Save nwg/3876252 to your computer and use it in GitHub Desktop.
from gevent import monkey; monkey.patch_all()
import socket
from threading import Thread
import time
import struct
ADDR = ('localhost', 8125)
closed = False
def server():
global closed
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(ADDR)
s.listen(1)
conn, addr = s.accept()
conn.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', 1, 0))
print 'accepted'
data = conn.recv(1024)
print 'received %s' % data
conn.shutdown(socket.SHUT_RD)
conn.close()
closed = True
def client():
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect( ADDR )
print 'sending abc'
bc = client.send('abc')
print 'sent %d bytes' % bc
while not closed:
time.sleep(1)
print 'sending 123'
client.send('123')
t1 = Thread(target=server, args=())
t2 = Thread(target=client, args=())
t1.start()
t2.start()
t1.join()
t2.join()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment