recv
の概要
-
用途:
recv
は主にTCPソケットで使用する。 - 機能: データを受信するが、送信元のアドレス情報は取得しない。
-
構文:
recv(bufsize[, flags])
-
bufsize
: 受信するデータの最大バイト数。 -
flags
: オプションのフラグ(省略可能)。
-
- 特徴: 接続指向プロトコル(TCP)を使っているため、接続が確立された相手からのデータを受信する。
import socket
# ソケット作成
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('example.com', 80))
# データ受信
data = s.recv(1024)
print('Received', repr(data))
s.close()
recvfrom
の概要
-
用途:
recvfrom
は主にUDPソケットで使用する。 - 機能: データを受信し、送信元のアドレス情報も取得する。
-
構文:
recvfrom(bufsize[, flags])
-
bufsize
: 受信するデータの最大バイト数。 -
flags
: オプションのフラグ(省略可能)。
-
- 特徴: コネクションレスプロトコル(UDP)を使っているため、どのアドレスからデータが送信されたかを知ることができる。
import socket
# ソケット作成
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('localhost', 12345))
# データ受信
data, addr = s.recvfrom(1024)
print('Received', repr(data), 'from', addr)
s.close()
recv
とrecvfrom
の違い
-
プロトコル:
-
recv
: TCP -
recvfrom
: UDP
-
-
アドレス情報:
-
recv
: 送信元のアドレス情報を取得しない。 -
recvfrom
: 送信元のアドレス情報を取得する。
-
-
接続:
-
recv
: 接続指向。事前に接続を確立する必要がある。 -
recvfrom
: コネクションレス。データを受信するだけで送信元を特定できる。
-