1
は、方法は次のとおりです。pythonではソケットメソッドrecv(bufsize)、cではrecv(char * buf)の実際のバッファは何ですか? Pythonで
socket.recv(bufsize[, flags])
Cでは、この方法は次のとおりです。
int recv(_In_ SOCKET s, _Out_ char *buf, _In_ int len, _In_ int flags)
バッファは、これらの二つの方法では、ここでは何ですか?
TCP
ソケットを作成すると、receive window size
またはreceive buffer
と思っていました。しかし、私はテストのTCPメッセージをキャプチャしたとき、私は間違っていた。
私はバッファがソケットバッファだと思います。 tcpメッセージが来て、最初にtcp's buffer
(トランスポート層内)に入ります。そして、tcpの受信ウィンドウがデータを受信するためにスライドし始め、メッセージが正しい場合にはsocket buffer
(上記の2つの方法では実際のバッファ)に配送し始めます。最後に、データはアプリに配信されます。
私は正しいですか?
のC *の関数*パイソン[ 'recv_into'(https://docs.python.org/3/library/socket.html#socket.socket.recv_into) –
@AnttiHaapalaグレートに対応するが、何recv()とrecv_into()の違いは何ですか? 1つはシステムバッファを使用し、もう1つは自分で作成したバッファを使用しますか? – hcnhcn012