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 |
|