1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ネットワークプログラムの基本?

Last updated at Posted at 2017-07-03

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 自由に使ってよい

wikiポート番号一覧

サーバーソケットの作り方

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)
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?