WebSocket通信を前提に、ネットワークプログラミングの基礎をつらつらと。
以下を基礎に発展させていく予定。
通信種類の指定(とらんすぽーと)
ストリーム型
TCPにて接続を維持するコネクション型の通信をしたいですよ
example
socket.socket(socket.AF_INET, socket.SOCK_STREAM)
データグラム型
UDPにて接続を維持するコネクションレス型の通信をしたいですよ
example
socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
ポートについて
IPだけだと、1セッションの通信しか行えない。
IP+ポートを使用して複数通信処理が行える?(要調査)
ポート番号は 1~65535 までの指定が可能
Port num | Des |
---|---|
1~1023 | 既知ポート番号 |
1024~49151 | 左記も登録済み |
49152~65535 | 自由に使ってよい |
サーバーソケットの作り方
1.socket
例)TCP通信したいです
example
s.socket(socket.AF_INET, socket.SOCK_STREAM)
2.bind
作ったソケットに、使用する ip と port で固定する
example
s.bind((HOST,PORT))
3.listen
作成したソケットを有効にして、サーバー接続を受け付けるようにする処理。
接続可能数を指定します。指定数以上は接続拒否されるはず…
example
s.listen(1)
4.accept
接続可能状態にする。
example
conn, addr = s.accept()
5.send or recv
実際の受信処理
1度の受信サイズをByteにて指定できる。
example
recv_mess = s.recv()
6.close
くろーず
example
s.close()
クライアントソケットの作り方
1.socket
例)TCP通信したいです
example
s.socket(socket.AF_INET, socket.SOCK_STREAM)
2.connect
対象の ip と port に接続します
example
s.connect((host,port))
3.send or recv
example
s.sendall(msg)
4.closesocket
くろーず
example
s.close(msg)