ID EN
Socket

recvmsg

Python 3.11 🇮🇩 Bahasa Indonesia

Menerima data normal (hingga ukuran byte) dan data tambahan dari soket. Argumen ancbufsize menetapkan ukuran buffer internal dalam byte yang digunakan untuk menerima data tambahan; defaultnya adalah 0, artinya tidak ada data tambahan yang akan diterima. Ukuran buffer yang sesuai untuk data tambahan dapat dihitung menggunakan CMSG_SPACE() atau CMSG_LEN(), dan item yang tidak sesuai dengan buffer mungkin akan dipotong atau dibuang. Argumen flags defaultnya adalah 0 dan memiliki arti yang sama seperti untuk recv().

Syntax

PYTHON
socket.recvmsg(bufsize[, ancbufsize[, flags]])

Contoh

Example 1
PYTHON
import socket, array

def recv_fds(sock, msglen, maxfds):
    fds = array.array("i")    Array of ints
    msg, ancdata, flags, addr = sock.recvmsg(msglen, socket.CMSG_LEN(maxfds * fds.itemsize))
    for cmsg_level, cmsg_type, cmsg_data in ancdata:
        if cmsg_level == socket.SOL_SOCKET and cmsg_type == socket.SCM_RIGHTS:
             Append data, ignoring any truncated integers at the end.
            fds.frombytes(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % fds.itemsize)])
    return msg, list(fds)

See Also

CMSG_SPACE() CMSG_LEN() recv() bytes bytes sendmsg() recvmsg() AF_UNIX