Chapter 7:Socket Options and IOCTLs
|
||
C & Winsock: The Kick Start programming tutorialsC & Linux SocketProgram Example IndexC#, VB .NET & C++/CLI Network ProgrammingWindows Device Driver Development & Program ExamplesReactOS - Windows OS Binary Compatible Open Source Project - C & C++
|
What do we have in this chapter?
SOL_SOCKET Option LevelSO_ACCEPTCONNSO_BROADCASTSO_CONDITIONAL_ACCEPTSO_CONNECT_TIMESO_DEBUGSO_DONTLINGERSO_DONTROUTESO_ERRORSO_ EXCLUSIVEADDRUSESO_KEEPALIVESO_LINGERSO_MAX_MSG_SIZESO_OOBINLINESO_OPENTYPESO_PROTOCOL_INFOSO_RCVBUFSO_RCVTIMEOSO_REUSEADDRSO_SNDBUFSO_SNDTIMEOSO_TYPESO_UPDATE_ACCEPT_CONTEXTSOL_APPLETALK Option LevelSO_CONFIRM_NAMESO_DEREGISTER_NAME, SO_REMOVE_NAMESO_LOOKUP_MYZONE, SO_GETMYZONESO_LOOKUP_NAMESO_LOOKUP_ZONES, SO_GETZONELISTSO_LOOKUP_ZONES_ON_ADAPTER, SO_GETLOCALZONESSO_LOOKUP_NETDEF_ON_ADAPTER, SO_GETNETINFOSO_PAP_GET_SERVER_STATUSSO_PAP_PRIME_READSO_PAP_SET_SERVER_STATUSSO_REGISTER_NAMESOL_IRLMP Option LevelIRLMP_9WIRE_MODEIRLMP_ENUMDEVICESIRLMP_EXCLUSIVE_MODEIRLMP_IAS_QUERYIRLMP_IAS_SETIRLMP_IRLPT_MODEIRLMP_SEND_PDU_LENIPPROTO_IP Option LevelIP_HDRINCLIP_TOSIP_TTLIP_MULTICAST_IFIP_MULTICAST_TTLIP_MULTICAST_LOOPIP_ADD_MEMBERSHIPIP_DROP_MEMBERSHIPIP_ADD_SOURCE_MEMBERSHIPIP_DROP_SOURCE_MEMBERSHIPIP_BLOCK_SOURCEIP_UNBLOCK_SOURCEIP_DONTFRAGMENTIP_PKTINFOIPPROTO_IPV6 Option LevelIPV6_HDRINCLIPV6_UNICAST_HOPSIPV6_MULTICAST_IFIPV6_MULTICAST_HOPSIPV6_MULTICAST_LOOPIPV6_ADD_MEMBERSHIP, IPV6_JOIN_GROUPIPV6_DROP_MEMBERSHIP, IPV6_LEAVE_GROUPIPV6_PKTINFOIPPROTO_RM Option LevelRM_RATE_WINDOW_SIZERM_SET_MESSAGE_BOUNDARYRM_FLUSHCACHERM_SENDER_WINDOW_ADVANCE_METHODRM_SENDER_STATISTICSRM_LATEJOINRM_SET_SEND_IFRM_ADD_RECEIVE_IFRM_DEL_RECEIVE_IFRM_SEND_WINDOW_ADV_RATERM_USE_FECRM_SET_MCAST_TTLRM_RECEIVER_STATISTICSIPPROTO_TCP Option LevelTCP_NODELAYNSPROTO_IPX Option LevelIPX_PTYPEIPX_FILTERPTYPEIPX_STOPFILTERPTYPEIPX_DSTYPEIPX_EXTENDED_ADDRESSIPX_RECVHDRIPX_MAXSIZEIPX_ADDRESSIPX_GETNETINFOIPX_GETNETINFO_NORIPIPX_SPXGETCONNECTIONSTATUSIPX_ADDRESS_NOTIFYIPX_MAX_ADAPTER_NUMIPX_RERIPNETNUMBERIPX_RECEIVE_BROADCASTIPX_IMMEDIATESPXACKIoctlsocket(), WSAIoctl(), and WSANSPIoctl()FIONBIOFIONREADSIOCATMARKOther Ioctl CommandsSIO_ENABLE_CIRCULAR_QUEUEINGSIO_FIND_ROUTESIO_FLUSHSIO_GET_BROADCAST_ADDRESSSIO_GET_EXTENSION_FUNCTION_POINTERSIO_CHK_QOSSIO_GET_QOSSIO_SET_QOSSIO_MULTIPOINT_LOOPBACKSIO_MULTICAST_SCOPESIO_KEEPALIVE_VALSSIO_RCVALLSIO_RCVALL_MCASTSIO_RCVALL_IGMPMCASTSIO_ROUTING_INTERFACE_QUERYSIO_ROUTING_INTERFACE_CHANGESIO_ADDRESS_LIST_QUERYSIO_ADDRESS_LIST_SORTSIO_ADDRESS_LIST_CHANGESIO_GET_INTERFACE_LISTSIO_GET_INTERFACE_LIST_EXSIO_GET_MULTICAST_FILTERSIO_SET_MULTICAST_FILTERSIO_INDEX_BINDSIO_INDEX_MCASTIFSIO_INDEX_ADD_MCASTSIO_INDEX_DEL_MCASTSIO_NSP_NOTIFY_CHANGESIO_QUERY_TARGET_PNP_HANDLESIO_UDP_CONNRESETSO_SSL_GET_CAPABILITIESSO_SSL_GET_FLAGSSO_SSL_SET_FLAGSSO_SSL_GET_PROTOCOLSSO_SSL_SET_PROTOCOLSSO_SSL_SET_VALIDATE_CERT_HOOKSO_SSL_PERFORM_HANDSHAKEATM Ioctl CommandsSIO_GET_NUMBER_OF_ATM_DEVICESSIO_GET_ATM_ADDRESSSIO_ASSOCIATE_PVCSIO_GET_ATM_CONNECTION_IDProgram ExamplesThe Multicast and IP_TTL Option Program ExampleThe SIO_GET_ATM_ADDRESS Program ExampleSetting the SO_KEEPALIVE_VALS on a Socket Program ExampleThe SO_ACCEPTCONN Option Program ExampleThe Broadcast Data and SO_BROADCASt Option Program ExampleThe SO_PROTOCOL_INFO Option Program ExampleThe SO_RCVTIMEO Option Program ExampleThe SO_TYPE Option Program Example
Summary
Such an enormous variety of socket options and ioctl commands might seem overwhelming at first, but they do allow applications to access protocol-specific characteristics, as well as offer you the capability to fine-tune an application. In some cases, an application must use one or more socket options or ioctls in order to operate, as in the case of AppleTalk or IrDA. Even so, an application will most likely use only a few options at a time. Of course, one of the more frustrating aspects of socket options and ioctls is that not all options or ioctls are available on every Windows platform, causing trouble for those applications that are attempting to be cross-platform-compatible.
|
|
|
![]() Custom Search |
|
< Chap 6: Scalable Winsock2 Applications | Part 1 | Part 2 | Part 3 | Part 4 | Part 5 | Part 6 | Part 7 | Part 8 | Part 9 | Part 10 | Chap 8: Registration & Name Resolutions >
Share and email to your beloved friends and foes:
|
||