Pythonでソケットプログラミング その1
Hello,worldサーバ
サーバではクライアントのIPアドレスを表示します。クライアントに対してはHello,worldというメッセージを送信します。
最低限の機能しかもたないプログラムですが、サーバとしての基本的な機能はすべて含まれています。
サーバ側
#server.py import socket class HelloServer: def __init__(self, addr, port): self.server_sock = socket.socket() self.server_sock.bind((addr, port)) self.server_sock.listen(1) def start(self): conn, addr = self.server_sock.accept() print "connected by", addr conn.send("Hello,world") conn.close() server = HelloServer("localhost", 10000) server.start()
クライアント側
#client.py import socket import sys argvs = sys.argv if len(argvs) != 3: print "Invalid Argument." print "Usage: python client.py serverAddr serverPort." quit() serverAddr = argvs[1] serverPort = int(argvs[2]) client_sock = socket.socket() client_sock.connect((serverAddr, serverPort)) client_sock.send("hello") data = client_sock.recv(1024) print data client_sock.close()
実行結果
サーバ側
# python server.py connected by ('127.0.0.1', 58884)
クライアント側
# python client.py localhost 10000 Hello,world
次回はもう少し進んだエコーサーバを実装します。