Bagikan melalui


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
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 struktur CSADDR_INFO .
WSAEINPROGRESS
Pemblokiran panggilan Windows Sockets 1.1 sedang berlangsung, atau penyedia layanan masih memproses fungsi panggilan balik.
WSAEINVAL
Parameter tingkat tidak diketahui atau tidak valid.
WSAENOPROTOOPT
Opsi tidak diketahui atau tidak didukung oleh keluarga protokol yang ditunjukkan.
WSAENOTSOCK
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
Ws2def.h (termasuk Winsock2.h)

Lihat juga

getsockopt

CSADDR_INFO

SOCKADDR