開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
入門 Python 3 (Bill Lubanovic (著)、斎藤 康毅 (監修)、長尾 高弘 (翻訳)、オライリージャパン)の11章(並行処理とネットワーク)、11.3(復習問題)1.を取り組んでみる。
コード(Emacs)
Python 3
server1.py
#!/usr/bin/env python3 import socket import datetime f = open('server1.txt', 'w') print('11-1', file=f) server_address = ('localhost', 6789) max_size = 4096 print('待機中…', file=f) server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) server.bind(server_address) while True: data, client = server.recvfrom(max_size) print(data.decode('utf-8'), client, file=f) if data == b'time': server.sendto(datetime.datetime.now( ).isoformat().encode('utf-8'), client) else: server.sendto(b'xxxxx', client) server.close() f.close()
client1.py
#!/usr/bin/env python3 import datetime import socket import time print('11-1') server_address = ('localhost', 6789) max_size = 4096 client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) for i in range(10): if i % 2 == 0: client.sendto(b'time', server_address) else: client.sendto(b'TIME', server_address) data, server = client.recvfrom(max_size) print(data.decode('utf-8')) time.sleep(5) client.close()
入出力結果(Terminal, Jupyter(IPython))
$ ./server1.py & [1] 56640 $ ./client1.py 11-1 2018-06-05T18:37:11.299785 xxxxx 2018-06-05T18:37:21.306461 xxxxx 2018-06-05T18:37:31.314266 xxxxx 2018-06-05T18:37:41.320445 xxxxx 2018-06-05T18:37:51.326622 xxxxx $ fg ./server1.py C-c C-cTraceback (most recent call last): File "./server1.py", line 14, in <module> data, client = server.recvfrom(max_size) KeyboardInterrupt $ cat server1.txt 11-1 待機中… time ('127.0.0.1', 61941) TIME ('127.0.0.1', 61941) time ('127.0.0.1', 61941) TIME ('127.0.0.1', 61941) time ('127.0.0.1', 61941) TIME ('127.0.0.1', 61941) time ('127.0.0.1', 61941) TIME ('127.0.0.1', 61941) time ('127.0.0.1', 61941) TIME ('127.0.0.1', 61941) $
0 コメント:
コメントを投稿