Opsi Soket SOL_SOCKET

Tabel berikut ini menjelaskan opsi soket SOL_SOCKET . Lihat halaman referensi fungsi getsockopt dan setsockopt untuk informasi selengkapnya tentang mendapatkan dan mengatur opsi soket.

Untuk menghitung protokol dan menemukan properti yang didukung untuk setiap protokol yang diinstal, gunakan fungsi WSAEnumProtocols, WSCEnumProtocols, atau WSCEnumProtocols32.

Beberapa opsi soket memerlukan lebih banyak penjelasan daripada yang dapat disampaikan tabel ini; opsi tersebut berisi tautan ke halaman tambahan.

Note

Semua opsi soket SOL_SOCKET berlaku sama untuk IPv4 dan IPv6 (kecuali SO_BROADCAST, karena siaran tidak diimplementasikan di IPv6).

 

Opsi Soket SOL_SOCKET

Option Dapatkan Menetapkan Jenis optval Description
PVD_CONFIG yes yes char [] Objek struktur data buram yang berisi informasi konfigurasi untuk penyedia layanan. Opsi ini bergantung pada implementasi.
SO_ACCEPTCONN yes DWORD (boolean) Mengembalikan apakah soket dalam mode mendengarkan. Opsi ini hanya Valid untuk protokol berorientasi koneksi.
SO_BROADCAST yes yes DWORD (boolean) Konfigurasikan soket untuk mengirim data siaran. Opsi ini hanya Valid untuk protokol yang mendukung penyiaran (IPX dan UDP, misalnya).
SO_BSP_STATE yes CSADDR_INFO Mengembalikan alamat lokal, port lokal, alamat jarak jauh, port jarak jauh, jenis soket, dan protokol yang digunakan oleh soket. Lihat referensi SO_BSP_STATE untuk informasi selengkapnya.
SO_CONDITIONAL_ACCEPT yes yes DWORD (boolean) Menunjukkan apakah koneksi masuk akan diterima atau ditolak oleh aplikasi, bukan oleh tumpukan protokol. Lihat referensi SO_CONDITIONAL_ACCEPT untuk informasi selengkapnya.
SO_CONNDATA yes yes char [] Data tambahan, bukan dalam aliran data jaringan normal, yang dikirim dengan permintaan jaringan untuk membuat koneksi. Opsi ini digunakan oleh protokol warisan seperti DECNet, OSI TP4, dan lainnya. Opsi ini tidak didukung oleh protokol TCP/IP di Windows.
SO_CONNDATALEN yes DWORD Panjangnya, dalam byte, data tambahan, bukan dalam aliran data jaringan normal, yang dikirim dengan permintaan jaringan untuk membuat koneksi. Opsi ini digunakan oleh protokol warisan seperti DECNet, OSI TP4, dan lainnya. Opsi ini tidak didukung oleh protokol TCP/IP di Windows.
SO_CONNECT_TIME yes DWORD Mengembalikan jumlah detik yang telah disambungkan oleh soket. Opsi ini hanya valid untuk protokol berorientasi koneksi.
SO_CONNOPT yes yes char [] Data opsi koneksi tambahan, bukan dalam aliran data jaringan normal, yang dikirim dengan permintaan jaringan untuk membuat koneksi. Opsi ini digunakan oleh protokol warisan seperti DECNet, OSI TP4, dan lainnya. Opsi ini tidak didukung oleh protokol TCP/IP di Windows.
SO_CONNOPTLEN yes DWORD Panjangnya, dalam byte, data opsi koneksi, bukan dalam aliran data jaringan normal, yang dikirim dengan permintaan jaringan untuk membuat koneksi. Opsi ini digunakan oleh protokol warisan seperti DECNet, OSI TP4, dan lainnya. Opsi ini tidak didukung oleh protokol TCP/IP di Windows.
SO_DISCDATA yes yes char [] Data tambahan, bukan dalam aliran data jaringan normal, yang dikirim dengan permintaan jaringan untuk memutuskan koneksi. Opsi ini digunakan oleh protokol warisan seperti DECNet, OSI TP4, dan lainnya. Opsi ini tidak didukung oleh protokol TCP/IP di Windows.
SO_DISCDATALEN yes DWORD Panjangnya, dalam byte, data tambahan, bukan dalam aliran data jaringan normal, yang dikirim dengan permintaan jaringan untuk memutuskan koneksi. Opsi ini digunakan oleh protokol warisan seperti DECNet, OSI TP4, dan lainnya. Opsi ini tidak didukung oleh protokol TCP/IP di Windows.
SO_DISCOPT yes yes char [] Data opsi pemutusan sambungan tambahan, bukan di aliran data jaringan normal, yang dikirim dengan permintaan jaringan untuk memutuskan koneksi. Opsi ini digunakan oleh protokol warisan seperti DECNet, OSI TP4, dan lainnya. Opsi ini tidak didukung oleh protokol TCP/IP di Windows.
SO_DISCOPTLEN yes DWORD Panjangnya, dalam byte, dari data opsi pemutusan sambungan tambahan, bukan di aliran data jaringan normal, yang dikirim dengan permintaan jaringan untuk memutuskan koneksi. Opsi ini digunakan oleh protokol warisan seperti DECNet, OSI TP4, dan lainnya. Opsi ini tidak didukung oleh protokol TCP/IP di Windows.
SO_DEBUG yes yes DWORD (boolean) Aktifkan output debug. Penyedia Microsoft saat ini tidak mengeluarkan informasi debug apa pun.
SO_DONTLINGER yes yes DWORD (boolean) Menunjukkan status anggota l_onoff struktur yang masih ada yang terkait dengan soket. Jika anggota ini bukan nol, soket tetap terbuka untuk jumlah waktu tertentu setelah panggilan fungsi closesocket untuk mengaktifkan data yang diantrekan untuk dikirim. Opsi ini hanya valid untuk protokol yang andal dan berorientasi pada koneksi.
SO_DONTROUTE yes yes DWORD (boolean) Menunjukkan bahwa data keluar harus dikirim pada antarmuka apa pun yang terikat soket dan bukan dirutekan pada beberapa antarmuka lain. Opsi ini hanya Valid untuk protokol berorientasi pesan. Microsoft penyedia secara diam-diam mengabaikan opsi ini dan selalu berkonsultasi dengan tabel perutean untuk menemukan antarmuka keluar yang sesuai.
SO_ERROR yes DWORD Mengembalikan kode kesalahan terakhir pada soket ini. Kode kesalahan per soket ini tidak selalu diatur segera.
SO_EXCLUSIVEADDRUSE yes yes DWORD (boolean) Mencegah soket lain mengikat ke alamat dan port yang sama. Opsi ini harus diatur sebelum memanggil fungsi pengikatan . Lihat referensi SO_EXCLUSIVEADDRUSE untuk informasi selengkapnya.
SO_GROUP_ID yes int tidak ditandatangani Opsi soket ini dicadangkan dan tidak boleh digunakan.
SO_GROUP_PRIORITY yes yes int Opsi soket ini dicadangkan dan tidak boleh digunakan.
SO_KEEPALIVE yes yes DWORD (boolean) Mengaktifkan tetap hidup untuk koneksi soket. Hanya berlaku untuk protokol yang mendukung gagasan tetap hidup (protokol berorientasi koneksi). Untuk TCP, batas waktu tetap hidup default adalah 2 jam dan interval tetap hidup adalah 1 detik. Jumlah default pemeriksaan tetap aktif bervariasi berdasarkan versi Windows. Lihat referensi SO_KEEPALIVE untuk informasi selengkapnya.
SO_LINGER yes yes struct linger Menunjukkan status struktur yang masih ada yang terkait dengan soket. Jika anggota l_onoff struktur berlama-lama bukan nol, soket tetap terbuka untuk jumlah waktu tertentu setelah panggilan fungsi closesocket untuk memungkinkan data antrean dikirim. Jumlah waktu, dalam detik, untuk tetap terbuka ditentukan dalam anggota l_linger struktur yang masih ada . Opsi ini hanya valid untuk protokol yang andal dan berorientasi pada koneksi.
SO_MAX_MSG_SIZE yes DWORD Mengembalikan ukuran pesan keluar maksimum untuk soket berorientasi pesan yang didukung oleh protokol. Tidak memiliki arti untuk soket berorientasi aliran.
SO_MAXDG yes DWORD Mengembalikan ukuran maksimum, dalam byte, untuk datagram keluar yang didukung oleh protokol. Opsi soket ini tidak memiliki arti untuk soket berorientasi aliran.
SO_MAXPATHDG yes DWORD Mengembalikan ukuran maksimum, dalam byte, untuk datagram keluar yang didukung oleh protokol ke alamat tujuan tertentu. Opsi soket ini tidak memiliki arti untuk soket berorientasi aliran. Microsoft penyedia dapat secara diam-diam memperlakukan ini sebagai SO_MAXDG.
SO_OOBINLINE yes yes DWORD (boolean) Menunjukkan bahwa data di luar batas harus dikembalikan sejalan dengan data reguler. Opsi ini hanya valid untuk protokol berorientasi koneksi yang mendukung data di luar band.
SO_OPENTYPE yes yes DWORD Setelah diatur, mempengaruhi apakah soket berikutnya yang dibuat akan tidak tumpang tindih. Nilai yang mungkin untuk opsi ini adalah SO_SYNCHRONOUS_ALERT dan SO_SYNCHRONOUS_NONALERT. Opsi ini tidak boleh digunakan. Sebagai gantinya gunakan fungsi WSASocket dan biarkan bit WSA_FLAG_OVERLAPPED di parameter dwFlags dimatikan.
SO_PAUSE_ACCEPT yes yes DWORD(boolean) Gunakan opsi ini untuk mendengarkan soket. Saat opsi diatur, soket merespons semua koneksi masuk dengan RST daripada menerimanya.
SO_PORT_SCALABILITY yes yes DWORD (boolean) Memungkinkan skalabilitas port lokal untuk soket dengan memungkinkan alokasi port dimaksimalkan dengan mengalokasikan port wildcard beberapa kali untuk pasangan port alamat lokal yang berbeda pada komputer lokal. Pada platform tempat kedua opsi tersedia, lebih suka SO_REUSE_UNICASTPORT alih-alih opsi ini. Lihat referensi SO_PORT_SCALABILITY untuk informasi selengkapnya.
SO_PROTOCOL_INFO yes WSAPROTOCOL_INFO Opsi ini didefinisikan ke opsi soket SO_PROTOCOL_INFOW jika makro UNICODE ditentukan. Jika makro UNICODE tidak ditentukan, maka opsi ini ditentukan ke opsi soket SO_PROTOCOL_INFOA.
SO_PROTOCOL_INFOA yes WSAPROTOCOL_INFOA Mengembalikan struktur WSAPROTOCOL_INFOA untuk soket yang diberikan
SO_PROTOCOL_INFOW yes WSAPROTOCOL_INFOW Mengembalikan struktur WSAPROTOCOL_INFOW untuk soket yang diberikan
SO_RANDOMIZE_PORT yes yes DWORD(boolean) Opsi ini harus diatur pada soket yang tidak terikat. Ketika SO_RANDOMIZE_PORT diatur dan port ephemeral dipilih pada soket, nomor port acak terikat. Gunakan kembali port secara otomatis (port yang dipilih menggunakan SO_REUSE_UNICASTPORT) juga mengacak port yang dikembalikan, jadi jika aplikasi menetapkan SO_REUSE_UNICASTPORT lalu mencoba mengatur SO_RANDOMIZE_PORT, panggilan setsockopt kedua gagal.
SO_RCVBUF yes yes DWORD Total ruang buffer per soket yang dicadangkan untuk penerimaan. Ini tidak terkait dengan SO_MAX_MSG_SIZE dan tidak selalu sesuai dengan ukuran jendela penerima TCP.
SO_RCVLOWAT yes yes DWORD Opsi soket dari BSD UNIX disertakan untuk kompatibilitas mundur. Opsi ini mengatur jumlah minimum byte yang akan diproses untuk operasi input soket. Opsi ini tidak didukung oleh penyedia TCP/IP Windows. Jika opsi ini digunakan pada Windows Vista dan yang lebih baru, fungsi getsockopt dan setsockopt gagal dengan WSAEINVAL. Pada versi Windows sebelumnya, fungsi-fungsi ini gagal dengan WSAENOPROTOOPT.
SO_RCVTIMEO yes yes DWORD Waktu habis, dalam milidetik, untuk memblokir menerima panggilan. Default untuk opsi ini adalah nol, yang menunjukkan bahwa operasi penerimaan tidak akan kehabisan waktu. Jika pemblokiran menerima waktu panggilan habis, koneksi dalam keadaan tidak ditentukan dan harus ditutup.
Jika soket dibuat menggunakan fungsi WSASocket , maka parameter dwFlags harus memiliki atribut WSA_FLAG_OVERLAPPED yang diatur agar batas waktu berfungsi dengan baik. Jika tidak, batas waktu tidak pernah berlaku.
SO_REUSEADDR yes yes DWORD (boolean) Memungkinkan soket untuk mengikat ke alamat dan port yang sudah digunakan. Opsi SO_EXCLUSIVEADDRUSE dapat mencegah hal ini.
SO_REUSE_UNICASTPORT yes yes DWORD (boolean) Saat diatur, izinkan penggunaan kembali port sementara untuk fungsi koneksi API Winsock yang memerlukan ikatan eksplisit, seperti ConnectEx. Perhatikan bahwa fungsi koneksi dengan ikatan implisit (seperti terhubung tanpa ikatan eksplisit) memiliki opsi ini yang diatur secara default. Gunakan opsi ini alih-alih SO_PORT_SCALABILITY pada platform tempat keduanya tersedia.
SO_REUSE_MULTICASTPORT yes DWORD Ketika diatur pada soket, opsi ini menunjukkan bahwa soket tidak akan pernah digunakan untuk menerima paket unicast, dan akibatnya port-nya dapat dibagikan dengan aplikasi multicast-only lainnya. Mengatur nilai ke 1 memungkinkan selalu berbagi lalu lintas multicast pada port. Mengatur nilai ke 0 (default) menonaktifkan perilaku ini.
SO_SNDBUF yes yes DWORD Total ruang buffer per soket yang dicadangkan untuk pengiriman. Ini tidak terkait dengan SO_MAX_MSG_SIZE dan tidak selalu sesuai dengan ukuran jendela pengiriman TCP.
SO_SNDLOWAT yes yes DWORD Opsi soket dari BSD UNIX disertakan untuk kompatibilitas mundur. Opsi ini mengatur jumlah minimum byte yang akan diproses untuk operasi output soket. Opsi ini tidak didukung oleh penyedia TCP/IP Windows. Jika opsi ini digunakan pada Windows Vista dan yang lebih baru, fungsi getsockopt dan setsockopt gagal dengan WSAEINVAL. Pada versi Windows sebelumnya, fungsi-fungsi ini gagal dengan WSAENOPROTOOPT.
SO_SNDTIMEO yes yes DWORD Waktu habis, dalam milidetik, untuk memblokir panggilan pengiriman. Default untuk opsi ini adalah nol, yang menunjukkan bahwa operasi pengiriman tidak akan kehabisan waktu. Jika waktu panggilan pengiriman pemblokiran habis, koneksi dalam keadaan tidak ditentukan dan harus ditutup.
Jika soket dibuat menggunakan fungsi WSASocket , maka parameter dwFlags harus memiliki atribut WSA_FLAG_OVERLAPPED yang diatur agar batas waktu berfungsi dengan baik. Jika tidak, batas waktu tidak pernah berlaku.
SO_TYPE yes DWORD Mengembalikan jenis soket untuk soket yang diberikan (SOCK_STREAM atau SOCK_DGRAM, misalnya).
SO_UPDATE_ACCEPT_CONTEXT yes DWORD (boolean) Opsi ini digunakan dengan fungsi AcceptEx . Opsi ini memperbarui properti soket yang diwariskan dari soket mendengarkan. Opsi ini harus diatur jika fungsi getpeername, getsockname, getsockopt, atau setsockopt akan digunakan pada soket yang diterima.
SO_UPDATE_CONNECT_CONTEXT yes DWORD (boolean) Opsi ini digunakan dengan fungsi ConnectEx, WSAConnectByList, dan WSAConnectByName . Opsi ini memperbarui properti soket setelah koneksi dibuat. Opsi ini harus diatur jika fungsi getpeername, getsockname, getsockopt, setsockopt, atau shutdown akan digunakan pada soket yang terhubung.
SO_USELOOPBACK yes yes DWORD (boolean) Gunakan alamat loopback lokal saat mengirim data dari soket ini. Opsi ini hanya boleh digunakan ketika semua data yang dikirim juga akan diterima secara lokal. Opsi ini tidak didukung oleh penyedia TCP/IP Windows. Jika opsi ini digunakan pada Windows Vista dan yang lebih baru, fungsi getsockopt dan setsockopt gagal dengan WSAEINVAL. Pada versi Windows sebelumnya, fungsi-fungsi ini gagal dengan WSAENOPROTOOPT.

Dukungan Windows untuk Opsi SOL_SOCKET

Option Windows 10 Windows 7 Windows Server 2008 Windows Vista Windows Server 2003 Windows XP Windows 2000 Windows NT4 Windows 9x/ME
PVD_CONFIG
SO_ACCEPTCONN yes yes yes yes yes yes yes yes yes
SO_BROADCAST yes yes yes yes yes yes yes yes yes
SO_BSP_STATE yes yes yes yes
SO_CONDITIONAL_ACCEPT yes yes yes yes yes yes yes
SO_CONNDATA yes yes yes yes yes yes yes yes
SO_CONNDATALEN yes yes yes yes yes yes yes yes
SO_CONNECT_TIME yes yes yes yes yes yes yes yes yes
SO_CONNOPT yes yes yes yes yes yes yes yes
SO_CONNOPTLEN yes yes yes yes yes yes yes yes
SO_DISCDATA yes yes yes yes yes yes yes yes
SO_DISCDATALEN yes yes yes yes yes yes yes yes
SO_DISCOPT yes yes yes yes yes yes yes yes
SO_DISCOPTLEN yes yes yes yes yes yes yes yes
SO_DEBUG yes yes yes yes yes yes yes yes yes
SO_DONTLINGER yes yes yes yes yes yes yes yes yes
SO_DONTROUTE yes yes yes yes yes yes yes yes yes
SO_ERROR yes yes yes yes yes yes yes yes yes
SO_EXCLUSIVEADDRUSE yes yes yes yes yes yes yes ya SP4+
SO_GROUP_ID yes yes yes yes
SO_GROUP_PRIORITY yes yes yes yes
SO_KEEPALIVE yes yes yes yes yes yes yes yes yes
SO_LINGER yes yes yes yes yes yes yes yes yes
SO_MAX_MSG_SIZE yes yes yes yes yes yes yes yes yes
SO_MAXDG yes yes yes yes yes yes yes
SO_MAXPATHDG yes yes yes yes yes yes yes
SO_OOBINLINE yes yes yes yes yes yes yes yes yes
SO_OPENTYPE yes yes yes yes yes yes yes yes yes
SO_PORT_SCALABILITY yes yes yes
SO_PROTECT yes
SO_PROTOCOL_INFO yes yes yes yes yes yes yes yes yes
SO_PROTOCOL_INFOA yes yes yes yes yes yes yes yes yes
SO_PROTOCOL_INFOW yes yes yes yes yes yes yes yes yes
SO_RCVBUF yes yes yes yes yes yes yes yes yes
SO_RCVLOWAT
SO_RCVTIMEO yes yes yes yes yes yes yes yes yes
SO_RANDOMIZE_PORT yes yes yes yes
SO_REUSEADDR yes yes yes yes yes yes yes yes yes
SO_REUSE_UNICASTPORT yes
SO_REUSE_MULTICASTPORT yes
SO_SNDBUF yes yes yes yes yes yes yes yes yes
SO_SNDLOWAT
SO_SNDTIMEO yes yes yes yes yes yes yes yes yes
SO_TYPE yes yes yes yes yes yes yes yes yes
SO_UPDATE_ACCEPT_CONTEXT yes yes yes yes yes yes yes yes
SO_UPDATE_CONNECT_CONTEXT yes yes yes yes yes yes
SO_USELOOPBACK

Remarks

Opsi soket SOL_SOCKET didefinisikan dalam beberapa file header Winsock:

  • Winsock2.h
  • Mswsock.h
  • Ws2def.h

Pada Microsoft Windows Software Development Kit (SDK) yang dirilis untuk Windows Vista dan yang lebih baru, organisasi file header telah berubah dan tingkat SOL_SOCKET ditentukan dalam file header Ws2def.h yang secara otomatis disertakan dalam file header Winsock2.h. Beberapa opsi soket SOL_SOCKET didefinisikan dalam file header Winsock2.h dan Mswsock.h . Opsi soket SOL_SOCKET yang tersisa ditentukan dalam file header Ws2def.h yang secara otomatis disertakan oleh file header Winsock2.h . Ws2def.h tidak boleh digunakan secara langsung.

Pada Platform Software Development Kit (SDK) yang dirilis untuk Windows Server 2003 dan Windows XP, tingkat SOL_SOCKET ditentukan dalam file header Winsock2.h. Opsi soket SOL_SOCKET didefinisikan dalam file header Winsock2.h dan Mswsock.h .

Requirements

Requirement Nilai
Header
Winsock2.h;
Mswsock.h;
Ws2def.h (termasuk Winsock2.h)