Demonstration of the Windows Sockets API SUMMARY ======= The WSOCK sample demonstrates the basics of sockets programming, specifically for Windows Sockets. It demonstrates how to accept incoming connections (using the Windows Sockets Asynchronous Extension APIs, threads, and traditional BSD-style blocking calls) and how to connect to remote hosts. Once connected, you can send a text string to the remote host. WSOCK also allows the user to view information on a user-entered host name. WSOCK demonstrates how to use AcceptEx which is a Microsoft specific extension to Windows Sockets and which is only supported on Windows NT. MORE INFORMATION ================ For the sample to operate correctly, the TCP/IP protocol must be properly installed. Also, if two machines are used over a network, both machines must have a HOSTS text file (for Windows NT machines, this file is located in %SYSTEMROOT%\SYSTEM32\DRIVERS\ETC\HOSTS; for Windows for Workgroups machines, this file is located in C:/WINDOWS/HOSTS). Within each HOSTS file, both the remote and local addresses of both machines must be listed. WSOCK can run on a single machine (execute two copies of WSOCK) or over a network with two machines. The following example explains how two separate machines over a network would test WSOCK: 1. Machine "Bob" executes a copy of WSOCK. 2. Machine "Fred" executes a copy of WSOCK. 3. Machine "Bob" chooses one of the Listen menu options (under WinSock) [Listen (Blocking), Listen With Threads, or Async Listen]. 4. Machine "Fred" selects the Connect menu option (under WinSock). 5. Machine "Bob" enters "12" as a TCP port number. 6. Machine "Bob" waits for a connection. 7. Machine "Fred" enters "Bob" as the host name to connect to. 8. Machine "Fred" enters "12" as a TCP port number. Both machines are now connected and can send strings back and forth by using the WinSock Send Message menu option. If Bob exits WSOCK while there is a connection, Fred receives a message box notification. FUNCTIONS USED ============== accept closesocket connect gethostbyname getservbyname htons listen send recv WSAAsyncSelect WSACleanup WSAStartup