data = file.readline().rstrip()
conn.send(('server %s got [%s]\n' % (mypid, data)).encode())
def client3():
mypid = os.getpid()
redirectBothAsClient()
for i in range(3):
print('client %s: %s' % (mypid, i)) # print to socket
data = input() # input from socket: flushes!
sys.stderr.write('client %s got [%s]\n' % (mypid, data)) # not redirected
###############################################################################
redirect client input + output, client is socket server
###############################################################################
def server4():
mypid = os.getpid()
sock = socket(AF_INET, SOCK_STREAM)
sock.connect((host, port))
file = sock.makefile('r')
for i in range(3):
sock.send(('server %s: %s\n' % (mypid, i)).encode()) # send to input()
data = file.readline().rstrip() # recv from print()
print('server %s got [%s]' % (mypid, data)) # result to terminal
def client4():
mypid = os.getpid()
redirectBothAsServer() # I'm actually the socket server in this mode
for i in range(3):
data = input() # input from socket: flushes!
print('client %s got [%s]' % (mypid, data)) # print to socket
sys.stdout.flush() # else last buffered till exit!
###############################################################################
redirect client input + output, client is socket client, server xfers first
###############################################################################
def server5():
mypid = os.getpid() # test 4, but server accepts
conn = initListenerSocket() # wait for client connect
file = conn.makefile('r') # send input(), recv print()
for i in range(3):
conn.send(('server %s: %s\n' % (mypid, i)).encode())
data = file.readline().rstrip()
print('server %s got [%s]' % (mypid, data))
def client5():
mypid = os.getpid()
s = redirectBothAsClient() # I'm the socket client in this mode
for i in range(3):
data = input() # input from socket: flushes!
print('client %s got [%s]' % (mypid, data)) # print to socket
sys.stdout.flush() # else last buffered till exit!
###############################################################################
Making Sockets Look Like Files and Streams | 831