Slide 11
Slide 11 text
— ϝοηʔδΛsocket͔Βड৴
def handle_client(sock, addr):
""" sockΛ௨ͯ͡client͔ΒσʔλΛड͚ͱΓ,echoΛฦ͢ """
try:
msg = chatmodule.recv_msg(sock) # messageΛશʹड৴͢Δ·Ͱblock
print('{}: {}'.format(addr, msg))
chatmodule.send_msg(sock, msg) # ૹ৴͢Δ·Ͱblock
except (ConnectionError, BrokenPipeError):
print('Socket error')
finally:
print('Closed connection to {}'.format(addr))
sock.close()
if __name__ == '__main__':
listen_sock = chatmodule.create_listen_socket(HOST, PORT)
# ιέοτࣗͷΞυϨεΛฦ͢
# ͜ͷؔɺIPv4/v6ιέοτͷϙʔτ൪߸ΛௐΔ߹ͳͲʹ༻ɻ
addr = listen_sock.getsockname()
print('Listening on {}'.format(addr))
while True:
client_sock, addr = listen_sock.accept()
print('Connection from {}'.format(addr))
handle_client(client_sock, addr)
٢ࣉ.pm13 2018/02/09 - Ozawa Shuhei ( @oza_shu ) 11