Bagikan melalui


Opsi Soket SOL_SOCKET

Tabel berikut ini menjelaskan SOL_SOCKET opsi soket. 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.

Catatan

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

 

Opsi Soket SOL_SOCKET

Opsi Dapatkan Set Jenis optval Deskripsi
PVD_CONFIG ya ya char [] Objek struktur data buram yang berisi informasi konfigurasi untuk penyedia layanan. Opsi ini bergantung pada implementasi.
SO_ACCEPTCONN ya DWORD (boolean) Mengembalikan apakah soket berada dalam mode mendengarkan. Opsi ini hanya Valid untuk protokol berorientasi koneksi.
SO_BROADCAST ya ya DWORD (boolean) Mengonfigurasi soket untuk mengirim data siaran. Opsi ini hanya Valid untuk protokol yang mendukung penyiaran (IPX dan UDP, misalnya).
SO_BSP_STATE ya 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 ya ya 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 ya ya 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 ya DWORD Panjang, 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 ya DWORD Mengembalikan jumlah detik yang telah disambungkan oleh soket. Opsi ini hanya valid untuk protokol berorientasi koneksi.
SO_CONNOPT ya ya 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 ya DWORD Panjang, dalam byte, dari data opsi sambungkan, 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 ya ya 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 ya DWORD Panjang, 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 ya ya 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 ya DWORD Panjang, dalam byte, dari data opsi pemutusan sambungan 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_DEBUG ya ya DWORD (boolean) Aktifkan output debug. Penyedia Microsoft saat ini tidak mengeluarkan informasi debug apa pun.
SO_DONTLINGER ya ya DWORD (boolean) Menunjukkan status anggota l_onoff struktur linger yang terkait dengan soket. Jika anggota ini bukan nol, soket tetap terbuka untuk jumlah waktu tertentu setelah panggilan fungsi closesocket untuk memungkinkan data antrean dikirim. Opsi ini hanya valid untuk protokol yang andal dan berorientasi pada koneksi.
SO_DONTROUTE ya ya 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. Penyedia Microsoft secara diam-diam mengabaikan opsi ini dan selalu berkonsultasi dengan tabel perutean untuk menemukan antarmuka keluar yang sesuai.
SO_ERROR ya DWORD Mengembalikan kode kesalahan terakhir pada soket ini. Kode kesalahan per soket ini tidak selalu diatur segera.
SO_EXCLUSIVEADDRUSE ya ya DWORD (boolean) Mencegah soket lain mengikat ke alamat dan port yang sama. Opsi ini harus diatur sebelum memanggil fungsi ikatan . Lihat referensi SO_EXCLUSIVEADDRUSE untuk informasi selengkapnya.
SO_GROUP_ID ya int tidak bertanda Opsi soket ini dicadangkan dan tidak boleh digunakan.
SO_GROUP_PRIORITY ya ya int Opsi soket ini dicadangkan dan tidak boleh digunakan.
SO_KEEPALIVE ya ya 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 hidup bervariasi berdasarkan versi Windows. Lihat referensi SO_KEEPALIVE untuk informasi selengkapnya.
SO_LINGER ya ya struct linger Menunjukkan status struktur linger yang terkait dengan soket. Jika anggota l_onoff struktur linger bukan nol, soket tetap terbuka untuk jangka waktu tertentu setelah panggilan fungsi closesocket untuk memungkinkan data antrean dikirim. Jumlah waktu, dalam detik, untuk tetap terbuka ditentukan dalam l_linger anggota struktur yang masih ada . Opsi ini hanya valid untuk protokol yang andal dan berorientasi pada koneksi.
SO_MAX_MSG_SIZE ya DWORD Mengembalikan ukuran pesan keluar maksimum untuk soket berorientasi pesan yang didukung oleh protokol. Tidak memiliki arti untuk soket berorientasi aliran.
SO_MAXDG ya 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 ya 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. Penyedia Microsoft dapat secara diam-diam memperlakukan ini sebagai SO_MAXDG.
SO_OOBINLINE ya ya 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 ya ya DWORD Setelah diatur, memengaruhi apakah soket berikutnya yang dibuat tidak akan 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 ya ya DWORD(boolean) Gunakan opsi ini untuk mendengarkan soket. Saat opsi diatur, soket merespons semua koneksi masuk dengan RST daripada menerimanya.
SO_PORT_SCALABILITY ya ya 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 daripada opsi ini. Lihat referensi SO_PORT_SCALABILITY untuk informasi selengkapnya.
SO_PROTOCOL_INFO ya WSAPROTOCOL_INFO Opsi ini ditentukan 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 ya WSAPROTOCOL_INFOA Mengembalikan struktur WSAPROTOCOL_INFOA untuk soket yang diberikan
SO_PROTOCOL_INFOW ya WSAPROTOCOL_INFOW Mengembalikan struktur WSAPROTOCOL_INFOW untuk soket yang diberikan
SO_RANDOMIZE_PORT ya ya 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. Port penggunaan kembali otomatis (port yang dipilih menggunakan SO_REUSE_UNICASTPORT) juga mengacak port yang dikembalikan, jadi jika aplikasi menetapkan SO_REUSE_UNICASTPORT dan kemudian mencoba mengatur SO_RANDOMIZE_PORT, panggilan setsockopt kedua gagal.
SO_RCVBUF ya ya DWORD Total ruang buffer per soket yang disediakan untuk penerimaan. Ini tidak terkait dengan SO_MAX_MSG_SIZE dan tidak selalu sesuai dengan ukuran jendela penerima TCP.
SO_RCVLOWAT ya ya 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 yang lebih lama, fungsi-fungsi ini gagal dengan WSAENOPROTOOPT.
SO_RCVTIMEO ya ya DWORD Waktu habis, dalam milidetik, untuk memblokir menerima panggilan. Default untuk opsi ini adalah nol, yang menunjukkan bahwa operasi terima tidak akan kehabisan waktu. Jika pemblokiran menerima waktu panggilan habis, koneksi dalam status tidak ditentukan dan harus ditutup.
Jika soket dibuat menggunakan fungsi WSASocket , 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 ya ya DWORD (boolean) Memungkinkan soket untuk mengikat ke alamat dan port yang sudah digunakan. Opsi SO_EXCLUSIVEADDRUSE dapat mencegah hal ini.
SO_REUSE_UNICASTPORT ya ya DWORD (boolean) Ketika 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 ya 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 ya ya DWORD Total ruang buffer per soket yang disediakan untuk pengiriman. Ini tidak terkait dengan SO_MAX_MSG_SIZE dan tidak selalu sesuai dengan ukuran jendela pengiriman TCP.
SO_SNDLOWAT ya ya 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 yang lebih lama, fungsi-fungsi ini gagal dengan WSAENOPROTOOPT.
SO_SNDTIMEO ya ya DWORD Waktu habis, dalam milidetik, untuk memblokir pengiriman panggilan. Default untuk opsi ini adalah nol, yang menunjukkan bahwa operasi pengiriman tidak akan kehabisan waktu. Jika waktu panggilan pengiriman pemblokiran habis, koneksi dalam status tidak ditentukan dan harus ditutup.
Jika soket dibuat menggunakan fungsi WSASocket , 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 ya DWORD Mengembalikan jenis soket untuk soket yang diberikan (SOCK_STREAM atau SOCK_DGRAM, misalnya).
SO_UPDATE_ACCEPT_CONTEXT ya DWORD (boolean) Opsi ini digunakan dengan fungsi AcceptEx . Opsi ini memperbarui properti soket yang diwarisi dari soket mendengarkan. Opsi ini harus diatur jika fungsi getpeername, getsockname, getsockopt, atau setsockopt akan digunakan pada soket yang diterima.
SO_UPDATE_CONNECT_CONTEXT ya 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 ya ya 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 yang lebih lama, fungsi-fungsi ini gagal dengan WSAENOPROTOOPT.

Dukungan Windows untuk Opsi SOL_SOCKET

Opsi 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 x x x x x x x x x
SO_BROADCAST x x x x x x x x x
SO_BSP_STATE x x x x
SO_CONDITIONAL_ACCEPT x x x x x x x
SO_CONNDATA x x x x x x x x
SO_CONNDATALEN x x x x x x x x
SO_CONNECT_TIME x x x x x x x x x
SO_CONNOPT x x x x x x x x
SO_CONNOPTLEN x x x x x x x x
SO_DISCDATA x x x x x x x x
SO_DISCDATALEN x x x x x x x x
SO_DISCOPT x x x x x x x x
SO_DISCOPTLEN x x x x x x x x
SO_DEBUG x x x x x x x x x
SO_DONTLINGER x x x x x x x x x
SO_DONTROUTE x x x x x x x x x
SO_ERROR x x x x x x x x x
SO_EXCLUSIVEADDRUSE x x x x x x x x SP4+
SO_GROUP_ID x x x x
SO_GROUP_PRIORITY x x x x
SO_KEEPALIVE x x x x x x x x x
SO_LINGER x x x x x x x x x
SO_MAX_MSG_SIZE x x x x x x x x x
SO_MAXDG x x x x x x x
SO_MAXPATHDG x x x x x x x
SO_OOBINLINE x x x x x x x x x
SO_OPENTYPE x x x x x x x x x
SO_PORT_SCALABILITY x x x
SO_PROTECT x
SO_PROTOCOL_INFO x x x x x x x x x
SO_PROTOCOL_INFOA x x x x x x x x x
SO_PROTOCOL_INFOW x x x x x x x x x
SO_RCVBUF x x x x x x x x x
SO_RCVLOWAT
SO_RCVTIMEO x x x x x x x x x
SO_RANDOMIZE_PORT x x x x
SO_REUSEADDR x x x x x x x x x
SO_REUSE_UNICASTPORT x
SO_REUSE_MULTICASTPORT x
SO_SNDBUF x x x x x x x x x
SO_SNDLOWAT
SO_SNDTIMEO x x x x x x x x x
SO_TYPE x x x x x x x x x
SO_UPDATE_ACCEPT_CONTEXT x x x x x x x x
SO_UPDATE_CONNECT_CONTEXT x x x x x x
SO_USELOOPBACK

Keterangan

Opsi soket SOL_SOCKET ditentukan 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 .

Persyaratan

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