ソケットプログラミング(サーバ/クライアント)
- 簡単なゲームを作る時とか、pythonでプロセス間の通信をしたくなる。そんな時のテンプレート。
- サーバ側でIPとホストを指定してソケットを生成、クライアントからの接続を待って、接続があれば処理、これを繰り返す。
import socket
from contextlib import closing
def run_server():
host = '127.0.0.1'
port = 4000
backlog = 10
buf_size = 4096
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
with closing(sock):
sock.bind((host, port))
sock.listen(backlog)
while True:
conn, address = sock.accept()
with closing(conn):
msg = conn.recv(buf_size)
print(msg)
conn.send(msg)
return
import socket
from contextlib import closing
def send_msg():
host = '127.0.0.1'
port = 4000
buf_size = 4096
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
with closing(sock):
sock.connect((host, port))
sock.send(b'hello world')
print(sock.recv(buf_size))
return
- ゲーム作る場合はpygameを使うことがあると思うけど、そんな場合のサンプルはこのページが参考になる。このページも参考になる(記事は13歳が書いているみたい、すごいなぁ)。