2014年8月2日土曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の11章(ソケットとネットワーキング(127.0.0.1という場所はない)、自分で考えてみよう(p.473)をpythonで考えてみる。

自分で考えてみよう(p.473)

コード(BBEdit, Emacs)

sample473.py

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

import socket
import random

advices = ["食べる量を減らしなさい。\r\n",
           "タイトなジーンズにしなさい。太って見えることはありません。\r\n",
           "一言:不適切\r\n",
           "今日だけは正直になりなさい。" + \
               "「本当に」思っていることを上司に言いなさい。\r\n",
           "そのヘアスタイルは考え直した方がいいでしょう。\r\n"]

port = 30000
host = ''
listener_d = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listener_d.bind((host, port))

listener_d.listen(10)

print("接続を待っています。")

connect_d, addr = listener_d.accept()
connect_d.send(bytes(random.choice(advices).encode("utf-8")))

connect_d.close()

入出力結果(Terminal, IPython)

サーバー

$ ./sample473.py
接続を待っています。
$

クライアント

$ telnet 127.0.0.1 30000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
食べる量を減らしなさい。
Connection closed by foreign host.
$ telnet 127.0.0.1 30000
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
$ telnet 127.0.0.1 30000
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
$

0 コメント:

コメントを投稿