yuva seçeneklerini SOL_SOCKET

Aşağıdaki tablolarda SOL_SOCKET yuva seçenekleri açıklanmaktadır. Yuva seçeneklerini alma ve ayarlama hakkında daha fazla bilgi için getsockopt ve setsockopt işlev başvuru sayfalarına bakın.

Protokolleri listelemek ve yüklenen her protokolün desteklenen özelliklerini bulmak için WSAEnumProtocols, WSCEnumProtocolskullanın veya WSCEnumProtocols32işlevini.

Bazı yuva seçenekleri, bu tabloların ileteyenden daha fazla açıklama gerektirir; bu tür seçenekler ek sayfalara bağlantılar içerir.

Note

Tüm SOL_SOCKET yuva seçenekleri IPv4 ve IPv6'ya eşit olarak uygulanır (yayın IPv6'da uygulanmadığından SO_BROADCAST hariç).

 

yuva seçeneklerini SOL_SOCKET

Option Al Ayarla Optval türü Description
PVD_CONFIG yes yes char [] Hizmet sağlayıcısı için yapılandırma bilgilerini içeren opak bir veri yapısı nesnesi. Bu seçenek uygulamaya bağımlıdır.
SO_ACCEPTCONN yes DWORD (boole) Yuvanın dinleme modunda olup olmadığını döndürür. Bu seçenek yalnızca bağlantı odaklı protokoller için geçerlidir.
SO_BROADCAST yes yes DWORD (boole) Yayın verilerini göndermek için bir yuva yapılandırın. Bu seçenek yalnızca yayını destekleyen protokoller için geçerlidir (örneğin, IPX ve UDP).
SO_BSP_STATE yes CSADDR_INFO Yuva tarafından kullanılan yerel adresi, yerel bağlantı noktasını, uzak adresi, uzak bağlantı noktasını, yuva türünü ve protokolü döndürür. Daha fazla bilgi için SO_BSP_STATE başvurusuna bakın.
SO_CONDITIONAL_ACCEPT yes yes DWORD (boole) Gelen bağlantıların protokol yığını tarafından değil, uygulama tarafından kabul edilmesi veya reddedilmesi gerektiğini gösterir. Daha fazla bilgi için SO_CONDITIONAL_ACCEPT başvurusuna bakın.
SO_CONNDATA yes yes char [] Bağlantı kurmak için ağ istekleriyle gönderilen, normal ağ veri akışında olmayan ek veriler. Bu seçenek DECNet, OSI TP4 ve diğerleri gibi eski protokoller tarafından kullanılır. Bu seçenek, Windows TCP/IP protokolü tarafından desteklenmez.
SO_CONNDATALEN yes DWORD Bağlantı kurmak için ağ istekleriyle gönderilen normal ağ veri akışında değil, bayt cinsinden ek verilerin uzunluğu. Bu seçenek DECNet, OSI TP4 ve diğerleri gibi eski protokoller tarafından kullanılır. Bu seçenek, Windows TCP/IP protokolü tarafından desteklenmez.
SO_CONNECT_TIME yes DWORD Yuvanın bağlandığı saniye sayısını döndürür. Bu seçenek yalnızca bağlantı odaklı protokoller için geçerlidir.
SO_CONNOPT yes yes char [] Bağlantı kurmak için ağ istekleriyle gönderilen, normal ağ veri akışında değil ek bağlanma seçeneği verileri. Bu seçenek DECNet, OSI TP4 ve diğerleri gibi eski protokoller tarafından kullanılır. Bu seçenek, Windows TCP/IP protokolü tarafından desteklenmez.
SO_CONNOPTLEN yes DWORD Bağlantı kurmak için ağ istekleriyle gönderilen normal ağ veri akışında değil, bağlantı seçeneği verilerinin bayt cinsinden uzunluğu. Bu seçenek DECNet, OSI TP4 ve diğerleri gibi eski protokoller tarafından kullanılır. Bu seçenek, Windows TCP/IP protokolü tarafından desteklenmez.
SO_DISCDATA yes yes char [] Bağlantının bağlantısını kesmek için ağ istekleriyle gönderilen, normal ağ veri akışında değil ek veriler. Bu seçenek DECNet, OSI TP4 ve diğerleri gibi eski protokoller tarafından kullanılır. Bu seçenek, Windows TCP/IP protokolü tarafından desteklenmez.
SO_DISCDATALEN yes DWORD Bağlantının bağlantısını kesmek için ağ istekleriyle gönderilen, normal ağ veri akışında olmayan ek verilerin bayt cinsinden uzunluğu. Bu seçenek DECNet, OSI TP4 ve diğerleri gibi eski protokoller tarafından kullanılır. Bu seçenek, Windows TCP/IP protokolü tarafından desteklenmez.
SO_DISCOPT yes yes char [] Bağlantının bağlantısını kesmek için ağ istekleriyle gönderilen normal ağ veri akışında değil ek bağlantı kesme seçeneği verileri. Bu seçenek DECNet, OSI TP4 ve diğerleri gibi eski protokoller tarafından kullanılır. Bu seçenek, Windows TCP/IP protokolü tarafından desteklenmez.
SO_DISCOPTLEN yes DWORD Bağlantının bağlantısını kesmek için ağ istekleriyle gönderilen normal ağ veri akışında değil, ek bağlantı kesme seçeneği verilerinin bayt cinsinden uzunluğu. Bu seçenek DECNet, OSI TP4 ve diğerleri gibi eski protokoller tarafından kullanılır. Bu seçenek, Windows TCP/IP protokolü tarafından desteklenmez.
SO_DEBUG yes yes DWORD (boole) Hata ayıklama çıkışını etkinleştirin. Microsoft sağlayıcıları şu anda herhangi bir hata ayıklama bilgisi çıktısı vermiyor.
SO_DONTLINGER yes yes DWORD (boole) Yuvayla ilişkilendirilmiş kalan yapısının l_onoff üyesinin durumunu gösterir. Bu üye sıfır değilse, kuyruğa alınan verilerin gönderilmesini etkinleştirmek için closesocket işlev çağrısından sonra bir yuva belirtilen süre boyunca açık kalır. Bu seçenek yalnızca güvenilir, bağlantı odaklı protokoller için geçerlidir.
SO_DONTROUTE yes yes DWORD (boole) Giden verilerin, yuvanın bağlı olduğu arabirimde gönderilmesi gerektiğini ve başka bir arabirimde yönlendirilmemesi gerektiğini gösterir. Bu seçenek yalnızca ileti odaklı protokoller için geçerlidir. Microsoft sağlayıcıları bu seçeneği sessizce yoksayar ve uygun giden arabirimi bulmak için her zaman yönlendirme tablosuna başvurun.
SO_ERROR yes DWORD Bu yuvadaki son hata kodunu döndürür. Bu yuva başına hata kodu her zaman hemen ayarlanmaz.
SO_EXCLUSIVEADDRUSE yes yes DWORD (boole) Diğer yuvaların aynı adrese ve bağlantı noktasına bağlanmasını engeller. Bağlama işlevi çağrılmadan önce bu seçenek ayarlanmalıdır. Daha fazla bilgi için SO_EXCLUSIVEADDRUSE başvurusuna bakın.
SO_GROUP_ID yes işaretsiz tam sayı Bu yuva seçeneği ayrılmıştır ve kullanılmamalıdır.
SO_GROUP_PRIORITY yes yes int Bu yuva seçeneği ayrılmıştır ve kullanılmamalıdır.
SO_KEEPALIVE yes yes DWORD (boole) Yuva bağlantısı için canlı tutma'ya olanak tanır. Yalnızca canlı tutma (bağlantı odaklı protokoller) kuralını destekleyen protokoller için geçerlidir. TCP için varsayılan etkin tutma zaman aşımı 2 saattir ve etkin tutma aralığı 1 saniyedir. Varsayılan etkin tutma yoklaması sayısı, Windows sürümüne göre değişir. Daha fazla bilgi için SO_KEEPALIVE başvurusuna bakın.
SO_LINGER yes yes struct linger Yuvayla ilişkili kalan yapısının durumunu gösterir. Beklemeyapısının l_onoff üyesi sıfırdan farklıysa, kuyruğa alınan verilerin gönderilmesini etkinleştirmek için closesocket işlev çağrısından sonra bir yuva belirtilen süre boyunca açık kalır. Saniye cinsinden açık kalma süresi, kalan yapının l_linger üyesinde belirtilir. Bu seçenek yalnızca güvenilir, bağlantı odaklı protokoller için geçerlidir.
SO_MAX_MSG_SIZE yes DWORD Protokol tarafından desteklenen ileti odaklı yuvalar için en büyük giden ileti boyutunu döndürür. Akış odaklı yuvalar için bir anlamı yoktur.
SO_MAXDG yes DWORD Protokol tarafından desteklenen giden veri birimleri için bayt cinsinden en büyük boyutu döndürür. Bu yuva seçeneğinin akış odaklı yuvalar için bir anlamı yoktur.
SO_MAXPATHDG yes DWORD Belirli bir hedef adrese protokol tarafından desteklenen giden veri birimleri için bayt cinsinden en büyük boyutu döndürür. Bu yuva seçeneğinin akış odaklı yuvalar için bir anlamı yoktur. Microsoft sağlayıcıları bunu sessizce SO_MAXDG olarak değerlendirebilir.
SO_OOBINLINE yes yes DWORD (boole) İlişkisiz verilerin normal verilerle aynı hizada döndürülmesi gerektiğini gösterir. Bu seçenek yalnızca bant dışı verileri destekleyen bağlantı odaklı protokoller için geçerlidir.
SO_OPENTYPE yes yes DWORD Ayarlandıktan sonra, oluşturulan sonraki yuvaların çakışıp çakışmayacağını etkiler. Bu seçeneğin olası değerleri SO_SYNCHRONOUS_ALERT ve SO_SYNCHRONOUS_NONALERT. Bu seçenek kullanılmamalıdır. Bunun yerine WSASocket işlevini kullanın ve dwFlags parametresindeki WSA_FLAG_OVERLAPPED bitini kapalı bırakın.
SO_PAUSE_ACCEPT yes yes DWORD(boole) Dinleme yuvaları için bu seçeneği kullanın. Seçenek ayarlandığında, yuva bunları kabul etmek yerine RST ile gelen tüm bağlantılara yanıt verir.
SO_PORT_SCALABILITY yes yes DWORD (boole) Yerel makinede farklı yerel adres bağlantı noktası çiftleri için joker bağlantı noktalarını birden çok kez ayırarak bağlantı noktası ayırmanın en üst düzeye çıkarılmasına olanak tanıyarak yuva için yerel bağlantı noktası ölçeklenebilirliğini etkinleştirir. Her iki seçeneğin de kullanılabildiği platformlarda bu seçenek yerine SO_REUSE_UNICASTPORT tercih edin. Daha fazla bilgi için SO_PORT_SCALABILITY başvurusuna bakın.
SO_PROTOCOL_INFO yes WSAPROTOCOL_INFO UNICODE makro tanımlanmışsa, bu seçenek SO_PROTOCOL_INFOW yuva seçeneğine tanımlanır. UNICODE makro tanımlanmamışsa, bu seçenek SO_PROTOCOL_INFOA yuva seçeneğine tanımlanır.
SO_PROTOCOL_INFOA yes WSAPROTOCOL_INFOA Verilen yuva için WSAPROTOCOL_INFOA yapısını döndürür
SO_PROTOCOL_INFOW yes WSAPROTOCOL_INFOW Verilen yuva için WSAPROTOCOL_INFOW yapısını döndürür
SO_RANDOMIZE_PORT yes yes DWORD(boole) Bu seçenek, ilişkisiz bir yuvada ayarlanmalıdır. SO_RANDOMIZE_PORT ayarlandığında ve yuvada kısa ömürlü bir bağlantı noktası seçildiğinde, rastgele bir bağlantı noktası numarası bağlanır. Bağlantı noktalarını otomatik olarak yeniden kullanma (SO_REUSE_UNICASTPORT kullanılarak seçilen bağlantı noktaları) döndürülen bağlantı noktasını rastgele de oluşturur; bu nedenle bir uygulama SO_REUSE_UNICASTPORT ayarlar ve SO_RANDOMIZE_PORT ayarlamayı denerse ikinci setsockopt çağrısı başarısız olur.
SO_RCVBUF yes yes DWORD Almalar için ayrılmış toplam yuva başına arabellek alanı. Bu, SO_MAX_MSG_SIZE ilgisizdir ve TCP alma penceresinin boyutuna karşılık gelmez.
SO_RCVLOWAT yes yes DWORD Geriye dönük uyumluluk için BSD UNIX'ten gelen bir yuva seçeneği. Bu seçenek, yuva giriş işlemleri için işlenmek üzere en az bayt sayısını ayarlar. Bu seçenek Windows TCP/IP sağlayıcısı tarafından desteklenmez. Bu seçenek Windows Vista ve sonraki sürümlerde kullanılırsa, getsockopt ve setsockopt işlevleri WSAEINVAL ile başarısız olur. Windows önceki sürümlerinde bu işlevler WSAENOPROTOOPT ile başarısız olur.
SO_RCVTIMEO yes yes DWORD Alma çağrılarını engellemeye yönelik milisaniye cinsinden zaman aşımı. Bu seçenek için varsayılan değer sıfırdır ve bu, alma işleminin zaman aşımına neden olmadığını gösterir. Engelleme alma çağrısı zaman aşımına ularsa, bağlantı belirsiz bir durumdadır ve kapatılmalıdır.
Yuva WSASocket işlevi kullanılarak oluşturulduysa, dwFlags parametresinin zaman aşımının düzgün çalışması için WSA_FLAG_OVERLAPPED özniteliği ayarlanmış olmalıdır. Aksi takdirde zaman aşımı hiçbir zaman etkili olmaz.
SO_REUSEADDR yes yes DWORD (boole) Yuvanın zaten kullanımda olan bir adrese ve bağlantı noktasına bağlanmasına izin verir. SO_EXCLUSIVEADDRUSE seçeneği bunu engelleyebilir.
SO_REUSE_UNICASTPORT yes yes DWORD (boole) Ayarlandığında, ConnectEx gibi açık bir bağlama gerektiren Winsock API bağlantı işlevleri için kısa ömürlü bağlantı noktasının yeniden kullanılmasına izin verin. Örtük bağlamaya sahip bağlantı işlevlerinin (açık bağlama olmadan bağlanma gibi) varsayılan olarak bu seçeneğe sahip olduğunu unutmayın. Her ikisinin de kullanılabildiği platformlarda SO_PORT_SCALABILITY yerine bu seçeneği kullanın.
SO_REUSE_MULTICASTPORT yes DWORD Yuvada ayarlandığında, bu seçenek yuvanın hiçbir zaman tek noktaya yayın paketleri almak için kullanılmayacağını ve bunun sonucunda bağlantı noktasının yalnızca çok noktaya yayın uygulamalarıyla paylaşılabileceğini gösterir. Değerin 1 olarak ayarlanması, her zaman bağlantı noktasında çok noktaya yayın trafiğinin paylaşılması sağlar. Değerin 0 (varsayılan) olarak ayarlanması bu davranışı devre dışı bırakır.
SO_SNDBUF yes yes DWORD Gönderme için ayrılmış toplam yuva başına arabellek alanı. Bu, SO_MAX_MSG_SIZE ilgisizdir ve TCP gönderme penceresinin boyutuna karşılık gelmez.
SO_SNDLOWAT yes yes DWORD Geriye dönük uyumluluk için BSD UNIX'ten gelen bir yuva seçeneği. Bu seçenek, yuva çıkış işlemleri için işlenmek üzere en az bayt sayısını ayarlar. Bu seçenek Windows TCP/IP sağlayıcısı tarafından desteklenmez. Bu seçenek Windows Vista ve sonraki sürümlerde kullanılırsa, getsockopt ve setsockopt işlevleri WSAEINVAL ile başarısız olur. Windows önceki sürümlerinde bu işlevler WSAENOPROTOOPT ile başarısız olur.
SO_SNDTIMEO yes yes DWORD Gönderme çağrılarını engellemeye yönelik milisaniye cinsinden zaman aşımı. Bu seçenek için varsayılan değer sıfırdır ve bu da gönderme işleminin zaman aşımına neden olmadığını gösterir. Engelleme gönderme araması zaman aşımına ularsa, bağlantı belirsiz bir durumdadır ve kapatılmalıdır.
Yuva WSASocket işlevi kullanılarak oluşturulduysa, dwFlags parametresinin zaman aşımının düzgün çalışması için WSA_FLAG_OVERLAPPED özniteliği ayarlanmış olmalıdır. Aksi takdirde zaman aşımı hiçbir zaman etkili olmaz.
SO_TYPE yes DWORD Verilen yuvanın yuva türünü döndürür (örneğin SOCK_STREAM veya SOCK_DGRAM).
SO_UPDATE_ACCEPT_CONTEXT yes DWORD (boole) Bu seçenek AcceptEx işleviyle kullanılır. Bu seçenek, dinleme yuvasından devralınan yuvanın özelliklerini güncelleştirir. Kabul edilen yuvada getpeername, getsockname, getsockopt veya setsockopt işlevleri kullanılacaksa bu seçenek ayarlanmalıdır.
SO_UPDATE_CONNECT_CONTEXT yes DWORD (boole) Bu seçenek ConnectEx, WSAConnectByList ve WSAConnectByName işlevleriyle kullanılır. Bu seçenek, bağlantı kurulduktan sonra yuvanın özelliklerini güncelleştirir. Bağlı yuvada getpeername, getsockname, getsockopt, setsockopt veya shutdown işlevleri kullanılacaksa bu seçenek ayarlanmalıdır.
SO_USELOOPBACK yes yes DWORD (boole) Bu yuvadan veri gönderirken yerel geri döngü adresini kullanın. Bu seçenek yalnızca gönderilen tüm veriler de yerel olarak alındığında kullanılmalıdır. Bu seçenek Windows TCP/IP sağlayıcısı tarafından desteklenmez. Bu seçenek Windows Vista ve sonraki sürümlerde kullanılırsa, getsockopt ve setsockopt işlevleri WSAEINVAL ile başarısız olur. Windows önceki sürümlerinde bu işlevler WSAENOPROTOOPT ile başarısız olur.

SOL_SOCKET Seçenekleri için Windows Desteği

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
KOŞULLU_KABUL 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 evet 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

SOL_SOCKET yuva seçenekleri birkaç Winsock üst bilgi dosyasında tanımlanır:

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

Windows Vista ve sonraki sürümler için yayımlanan Microsoft Windows Yazılım Geliştirme Seti'nde (SDK), üst bilgi dosyalarının organizasyonu değişmiş ve winsock2.h üst bilgi dosyasına otomatik olarak eklenen Ws2def.h üst bilgi dosyasında SOL_SOCKET düzeyi tanımlanmıştır. SOL_SOCKET yuva seçeneklerinden bazıları Winsock2.h ve Mswsock.h üst bilgi dosyalarında tanımlanır. Kalan SOL_SOCKET yuva seçenekleri, Winsock2.h üst bilgi dosyası tarafından otomatik olarak eklenen Ws2def.h üst bilgi dosyasında tanımlanır. Ws2def.h hiçbir zaman doğrudan kullanılmamalıdır.

Windows Server 2003 ve Windows XP için yayımlanan Platform Yazılım Geliştirme Seti'nde (SDK) SOL_SOCKET düzeyi Winsock2.h üst bilgi dosyasında tanımlanır. SOL_SOCKET yuva seçenekleri Winsock2.h ve Mswsock.h üst bilgi dosyalarında tanımlanır.

Requirements

Requirement Değer
Header
Winsock2.h;
Mswsock.h;
Ws2def.h (Winsock2.h içerir)