2017年1月19日木曜日

開発環境

Introducing Python(Bill Lubanovic (著)、O'Reilly Media)のChapter 11(Concurrency and Networks)、Things to Do 11.1.を解いてみる。

Things to Do 11.1.

コード

server

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import datetime
import socket

server_address = ('localhost', 6789)
max_size = 1000

print('Starting the server')
print('Waiting for a client to call.')

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(server_address)
server.listen(10)
client, addr = server.accept()
data = client.recv(max_size)
print(client)
if data == b'time':
    client.sendall('Current time: {0}'.format(
        datetime.datetime.utcnow().isoformat()).encode('utf-8'))

client.close()
server.close()

client

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import datetime
import socket

server_address = ('localhost', 6789)
max_size = 1000

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(server_address)
client.sendall(b'time')
data = client.recv(max_size)
print(data.decode('utf-8'))
client.close()

入出力結果(Terminal, IPython)

server

$ ./sample1_server.py
Starting the server
Waiting for a client to call.
<socket.socket fd=6, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 6789), raddr=('127.0.0.1', 61590)>
$

client

$ ./sample1_client.py
Current time: 2017-01-19T06:03:11.108045
$

0 コメント:

コメントを投稿