opsi soket SO_BSP_STATE
Opsi soket SO_BSP_STATE mengembalikan alamat lokal, port lokal, alamat jarak jauh, port jarak jauh, jenis soket, dan protokol yang digunakan oleh soket.
Untuk melakukan operasi ini, panggil fungsi getsockopt dengan parameter berikut.
Nilai opsi soket
Konstanta yang mewakili opsi soket ini adalah 0x1009.
Sintaks
int getsockopt(
(SOCKET) s, // descriptor identifying a socket
(int) SOL_SOCKET, // level
(int) SO_BSP_STATE, // optname
(char *) optval, // output buffer,
(int) *optlen, // size of output buffer
);
Parameter
-
s [in]
-
Deskriptor yang mengidentifikasi soket.
-
level [in]
-
Tingkat di mana opsi ditentukan. Gunakan SOL_SOCKET untuk operasi ini.
-
optname [in]
-
Opsi soket tempat nilai akan diambil. Gunakan SO_BSP_STATE untuk operasi ini.
-
optval [out]
-
Penunjuk ke buffer tempat nilai untuk opsi yang diminta akan dikembalikan. Parameter ini harus menunjuk ke buffer yang sama dengan atau lebih besar dari ukuran struktur CSADDR_INFO .
-
optlen [masuk, keluar]
-
Penunjuk ke ukuran, dalam byte, dari buffer optval . Ukuran ini harus sama dengan atau lebih besar dari ukuran struktur CSADDR_INFO .
Menampilkan nilai
Jika operasi berhasil diselesaikan, getsockopt mengembalikan nol.
Jika operasi gagal, nilai SOCKET_ERROR dikembalikan dan kode kesalahan tertentu dapat diambil dengan memanggil WSAGetLastError.
Kode kesalahan | Makna |
---|---|
Panggilan WSAStartup yang berhasil harus terjadi sebelum menggunakan fungsi ini. |
|
Subsistem jaringan gagal. |
|
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 struktur CSADDR_INFO . |
|
Pemblokiran panggilan Windows Sockets 1.1 sedang berlangsung, atau penyedia layanan masih memproses fungsi panggilan balik. |
|
Parameter tingkat tidak diketahui atau tidak valid. |
|
Opsi tidak diketahui atau tidak didukung oleh keluarga protokol yang ditunjukkan. |
|
Deskriptor bukan soket. |
Keterangan
Fungsi getsockopt yang dipanggil dengan opsi soket SO_BSP_STATE mengambil alamat lokal, port lokal, alamat jarak jauh, port jarak jauh, jenis soket, dan protokol yang digunakan oleh soket. Opsi soket SO_BSP_STATE berfungsi dengan soket IPv6 atau IPv4 ( keluarga alamat AF_INET6 dan AF_INET ).
Jika fungsi getsockopt berhasil, informasi dikembalikan dalam struktur CSADDR_INFO dalam buffer yang diacu oleh parameter optval . Bilangan bulat yang diarahkan oleh optlen awalnya harus berisi ukuran buffer ini; saat dikembalikan, itu akan diatur ke panjang, dalam byte, dari nilai yang dikembalikan dalam parameter optval .
Anggota iSocketType dan iProtocol dalam struktur CSADDR_INFO yang dikembalikan diisi untuk deskriptor soket dalam parameter s .
Jika soket dalam status tersambung atau terikat, maka anggota LocalAddr dari struktur CSADDR_INFO yang dikembalikan akan diatur ke struktur SOCKADDR yang mewakili alamat dan port lokal. Jika soket dalam status tersambung, maka anggota RemoteAddr dari struktur CSADDR_INFO yang dikembalikan akan diatur ke struktur SOCKADDR yang mewakili alamat jarak jauh dan port.
Jika soket tidak dalam status tersambung atau terikat, maka anggota LocalAddr dari struktur CSADDR_INFO yang dikembalikan dikembalikan dengan penunjuk NULL di anggota lpSockaddr dan anggota iSockaddrLength diatur ke nol. Jika soket tidak dalam status terikat, maka anggota RemoteAddr dari struktur CSADDR_INFO yang dikembalikan dikembalikan dengan penunjuk NULL di anggota lpSockaddr dan anggota iSockaddrLength diatur ke nol.
Jika fungsi getsockopt gagal, parameter optval dan optlen dibiarkan tidak berubah dan parameter optval tidak menunjuk ke struktur CSADDR_INFO yang dikembalikan.
Perhatikan bahwa file header Ws2def.h secara otomatis disertakan dalam Winsock2.h, dan tidak boleh digunakan secara langsung.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows Server 2008 [hanya aplikasi desktop] |
Header |
|
Lihat juga