|
|
Winsock Programmer's FAQ |
|
|
Not all Winsock behaviors are documented in the spec. Here's a list of interesting things I've found in Microsoft's Knowledge Base. How-TosQ120642, "TCP/IP & NBT Configuration Parameters for Windows NT" – This article documents all the registry tunables that the Windows NT/2000 TCP/IP stack uses, such as the MTU size. There is a similar article, Q158474, for Windows 95/98. Q190351, "Spawn Console
Processes with Redirected Standard Handles" – It's possible
to redirect the standard I/O handles (stdin, stdout, stderr) to
a socket, by way of the Q131978, "Receive/Send Multicasts Under WinNT/Win95 Using WinSock" – The title says it all. Interesting FeaturesQ142641, "Internet Server
Unavailable Because of Malicious SYN Attacks" – This article was
written in 1996 in response to the first SYN flood attacks. It describes
a new feature Microsoft added to its Windows NT service packs called
"dynamic backlog". This feature changes how the Q187709, "Windows NT 4.0 Domain
Name Resolver Caches Responses Regardless of Registry Setting"
– Windows NT 4.0's name resolver caches all name lookups for a
small amount of time. It will only cache a certain number of names,
though, so (with a few caveats) you can set the cache size to zero to
disable this cache, forcing Winsock to ask the nearest name server on
every Q199947, "Windows NT 4.0 Does Not Support TCP Scale Option" – Windows NT does not support the TCP window scale option (RFC 1323), limiting its TCP window size to 64 KB. (I'm told that Windows 2000 does support the window scale option.) Q193059, "IP Helper APIs Add Net Config and Stat Info to Win32 Apps" – This article discusses the IP Helper APIs in newer versions of Windows. These aren't strictly Winsock, but they make many Winsock tasks easier, and some previously-impossible ones easy. Q164249, "Autodial Heuristics" – This article explains how Windows NT chooses when to bring up a RAS link with its autodial feature. Q150523, "Socket Inheritance
on Different Windows Platforms" – Sockets duplicated with
Winsock 2's BugsQ177346, "select() Fails to
Block on a Blocking Socket" – The title pretty much says it
all. If you use Q177074, "Starting and Stopping a Winsock Server Using SO_REUSEADDR" – This documents a problem with restarting a server using the SO_REUSEADDR option to avoid the TIME_WAIT TCP date. Q186245, "FD_WRITE Reposted After Every Send" – Windows NT 4.0 up through SP3 behaved out-of-spec with regard to FD_WRITE notifications. This behavior would allow programs to be more sloppily written than the Winsock spec demands and yet still work. The stack was changed to obey the spec in SP4 and Windows 2000. Q192599, "Avoid Data Peeking in Winsock" – This article explains why using "peeks" will almost certainly not be helpful for your program. (This isn't a bug in Winsock so much as a mismatch between how you'd expect this feature to work and how it actually does work.) |
|
<< Other FAQs |
Winsock SDKs and Specifications >> |
| Updated Sat Jun 11 2005 00:32 MDT | Go to my home page |