2008年5月5日月曜日

echoをpythonで書く。

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
SFCの授業の課題をpythonする。

まずはselectなしバージョン。

#!/usr/bin/python

import socket
import time

sock = socket.socket()
sock.bind(('127.0.0.1', 20000))
sock.listen(1)
conn, address = sock.accept()
print 'got connection @', address
while True:
buf = conn.recv(40)
conn.send(buf)
time.sleep(1)


selectありバージョン。リストsocksのアイテムがどんどん増えるがそういうものです。

#!/usr/bin/python

import socket
import select

msock = socket.socket()
msock.bind(('127.0.0.1', 20000))
msock.listen(1)

socks = [msock]
while True:
ready, o, e = select.select(socks, [], [])
for sock in ready:
if sock == msock:
conn, address = sock.accept()
print 'got connection from', address
socks.append(conn)
else:
buf = sock.recv(40)
sock.send(buf)

0 件のコメント: