Pythonでsocketプログラミング
Pythonでsocketプログラミングをしてみる。
ライブラリリファレンスをお手本に、Echo serverとEcho clientを書いてみる。
まずはEcho server
socketをimportしたら、socket→baind→listen→acceptと
# Echo server program
import socketHOST = '' # Symbolic name meaning the local host
PORT = 50007 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while True:
data = conn.recv(1024)
print 'Received -> %s'%(data)
conn.send(data)
if data == '': #空白文字が送られてきたらcloseする。
break
conn.close()
コネクション型通信のメソッドに沿って接続を確立する。
次にEcho client
# Echo client program
import socketHOST = '127.0.0.1' # The remote host
PORT = 50007 # The same port as used by the server'''
###SiTCP_IP_address###
HOST = '192.168.10.16'
PORT = 24
###SiTCP_end###
'''
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))while True:
print 'Send message...'
msg = raw_input()
if msg == '': ##空白文字が入力されたらcloseする。
s.close()
break
s.send(msg)
data = s.recv(1024)
print 'Received', repr(data)
s.close()
print 'close'
参考
Python ライブラリリファレンス
17.2 socket -- 低レベルネットワークインターフェース
http://www.python.jp/doc/2.5/lib/module-socket.html