ソケット通信
ソケット通信
Section titled “ソケット通信”サーバーとクライアント間でネットワークを介してデータの送信・受信を行う仕組みのことである。
IPアドレスとポート番号を指定して、データのやり取りを行う。
-
socket():
socket.socket(address family, socket type)ソケットを生成する。デフォルト設定でいい場合は、引数は不要。
<引数>
- address family: アドレスファミリー(デフォルト AF_INET)
- socket type: ソケットタイプ(デフォルト SOCK_STREAM)
<返り値>
- ソケットオブジェクト
-
bind():
socket.bind(address)socket()を実行してもソケットが作られただけであり、IPアドレスとポート番号は未確定。
そこで、bind()により、IPアドレスとポート番号をソケットに割り当てる。
<引数>
- IPアドレスとポート番号のタプル
-
listen():
socket.listen([backlog])ソケットを接続待ちの状態にする。
<引数>
- 同時接続可能なクライアント数
-
accept():
socket.accept()クライアントからの接続要求に対して、通信の確立を行う。
<返り値>
- ソケットオブジェクトと相手のIPアドレス
-
recv():
socket.recv(bufsize)ソケットから送られたデータを受け取る。
bufsizeは一度で受け取れる最大データ量を指定する。
bufsizeには4096や2048のような、2の累乗を指定することが勧められている。
<返り値>
- 受け取ったデータのバイトオブジェクト
-
close():
socket.close()ソケットを閉じる。