Bagikan melalui


opsi soket IPV6_PKTINFO

Opsi soket IPV6_PKTINFO memungkinkan aplikasi untuk mengaktifkan atau menonaktifkan pengembalian informasi paket oleh fungsi LPFN_WSARECVMSG (WSARecvMsg) pada soket IPv6..

Untuk mengkueri status opsi soket ini, panggil fungsi getsockopt . Untuk mengatur opsi ini, panggil fungsi setsockopt dengan parameter berikut.

Nilai opsi soket

Konstanta yang mewakili opsi soket ini adalah 19.

Sintaks

int getsockopt(
  (SOCKET) s,      // descriptor identifying a socket 
  (int) IPPROTO_IPV6,   // level
  (int) IPV6_PKTINFO, // optname
  (char *) optval, // output buffer,
  (int) optlen,  // size of output buffer
);
int setsockopt(
  (SOCKET) s,      // descriptor identifying a socket 
  (int) IPPROTO_IPV6,   // level
  (int) IPV6_PKTINFO, // optname
  (char *) optval, // input buffer,
  (int) optlen,  // size of input buffer
);

Parameter

s [in]

Deskriptor yang mengidentifikasi soket.

level [in]

Tingkat di mana opsi didefinisikan. Gunakan IPPROTO_IPV6 untuk operasi ini.

optname [in]

Opsi soket untuk mendapatkan atau mengatur nilai. Gunakan IPV6_PKTINFO untuk operasi ini.

optval [out]

Penunjuk ke buffer yang berisi nilai untuk opsi yang akan diatur. Parameter ini harus menunjuk ke buffer yang sama dengan atau lebih besar dari ukuran nilai DWORD .

Nilai ini diperlakukan sebagai nilai boolean dengan 0 digunakan untuk menunjukkan FALSE (dinonaktifkan) dan nilai bukan nol untuk menunjukkan TRUE (diaktifkan).

optlen [in, out]

Penunjuk ke ukuran, dalam byte, dari buffer optval . Ukuran ini harus sama dengan atau lebih besar dari ukuran nilai DWORD .

Menampilkan nilai

Jika operasi berhasil diselesaikan, fungsi getsockopt atau setsockopt mengembalikan nol.

Jika operasi gagal, nilai SOCKET_ERROR dikembalikan dan kode kesalahan tertentu dapat diambil dengan memanggil WSAGetLastError.

Kode kesalahan Makna
WSANOTINITIALISED
Panggilan WSAStartup yang berhasil harus terjadi sebelum menggunakan fungsi ini.
WSAENETDOWN
Subsistem jaringan gagal.
WSAEFAULT
Salah satu optval atau parameter optlen menunjuk ke memori yang tidak berada di bagian ruang alamat pengguna yang valid. Kesalahan ini juga dikembalikan jika nilai yang diacu oleh parameter optlen kurang dari ukuran nilai DWORD .
WSAEINPROGRESS
Panggilan Windows Sockets 1.1 yang diblokir sedang berlangsung, atau penyedia layanan masih memproses fungsi panggilan balik.
WSAEINVAL
Argumen yang tidak valid disediakan. Kesalahan ini dikembalikan jika parameter tingkat tidak diketahui atau tidak valid. Pada Windows Vista dan yang lebih baru, kesalahan ini juga dikembalikan jika soket dalam keadaan transisi.
WSAENOPROTOOPT
Opsi ini tidak diketahui atau tidak didukung oleh keluarga protokol yang ditunjukkan. Kesalahan ini dikembalikan jika parameter jenis untuk deskriptor soket yang diteruskan dalam parameter s tidak SOCK_DGRAM atau SOCK_RAW.
WSAENOTSOCK
Deskriptor bukan soket.

 

Keterangan

Fungsi getsockopt yang dipanggil dengan opsi soket IPV6_PKTINFO memungkinkan aplikasi untuk menentukan apakah informasi paket akan dikembalikan oleh fungsi LPFN_WSARECVMSG (WSARecvMsg)untuk soket IPv6.

Fungsi setsockopt yang dipanggil dengan opsi soket IPV6_PKTINFO memungkinkan aplikasi untuk mengaktifkan atau menonaktifkan pengembalian informasi paket oleh fungsi LPFN_WSARECVMSG (WSARecvMsg ). Opsi IPV6_PKTINFO untuk soket dinonaktifkan (diatur ke FALSE) secara default.

Ketika opsi soket ini diaktifkan pada soket IPv6 jenis SOCK_DGRAM atau SOCK_RAW, fungsi LPFN_WSARECVMSG (WSARecvMsg) mengembalikan informasi paket dalam struktur WSAMSG yang ditunjukkan oleh parameter lpMsg . Salah satu objek data kontrol dalam struktur WSAMSG yang dikembalikan akan berisi struktur in6_pktinfo yang digunakan untuk menyimpan informasi alamat paket yang diterima.

Untuk datagram yang diterima oleh fungsi LPFN_WSARECVMSG (WSARecvMsg) melalui IPv6, anggota kontrol struktur WSAMSG yang diterima akan berisi struktur WSABUF yang berisi struktur WSACMSGHDR . Anggota cmsg_level struktur WSACMSGHDR ini akan berisi IPPROTO_IPV6, anggota cmsg_type struktur ini akan berisi IPV6_PKTINFO, dan anggota cmsg_data akan berisi struktur in6_pktinfo yang digunakan untuk menyimpan informasi alamat paket IPv6 yang diterima. Alamat IPv6 dalam struktur in6_pktinfo adalah alamat IPv6 tempat paket diterima.

Untuk soket datagram tumpukan ganda, jika aplikasi memerlukan fungsi LPFN_WSARECVMSG (WSARecvMsg) untuk mengembalikan informasi paket dalam struktur WSAMSG untuk datagram yang diterima melalui IPv4, maka opsi soket IP_PKTINFO harus diatur ke true pada soket. Jika hanya opsi IPV6_PKTINFO yang diatur ke true pada soket, informasi paket akan diberikan untuk datagram yang diterima melalui IPv6 tetapi mungkin tidak disediakan untuk datagram yang diterima melalui IPv4.

Perhatikan bahwa file header Ws2ipdef.h secara otomatis disertakan dalam Ws2tcpip.h, dan tidak boleh digunakan secara langsung.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows XP [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2003 [hanya aplikasi desktop]
Header
Ws2ipdef.h (termasuk Ws2tcpip.h)

Lihat juga

Soket Tumpukan Ganda

getsockopt

in6_pktinfo

IP_PKTINFO

Opsi Soket IPPROTO_IPV6

setsockopt

soket

WSAMSG

LPFN_WSARECVMSG (WSARecvMsg)