A Guide to
Windows Sockets



1 June 1993






Martin Hall, JSB Corporation
(martinh@jsbus.com)
INTRODUCTION
The Windows Sockets specification defines a standard, open network programming interface for Microsoft Windows and Windows NT2 which is based on the "socket" paradigm popularized in the Berkeley Software Distribution (BSD) from the University of California at Berkeley.  It includes both familiar Berkeley socket style routines and a set of Windows-specific extensions for further integration with the message-driven Windows environment.

This document is intended to act as a general information guide to all aspects of Windows Sockets.  Anyone who needs an introduction to and orientation in Windows Sockets should find it useful.  It will be updated on an irregular basis.  You should use the date on this document as a reference point.   This is a living document.  Any suggestions for additions to this document are welcome. Additionally, you should refer to the definitive Windows Sockets Version 1.1. specification dated January 20 1993 for detailed technical information.

Thanks to Dave Treadwell, J Allard and Mark Towfiq for their help in preparing this guide.
HISTORY
Windows Sockets grew out of a confluence of interests and technologies.  The burgeoning success of Microsoft Windows, the continuing growth in the prevalence and significance of TCP/IP networking and the corporate requirement for open software standards, all came together to create an environment which was ready and waiting for the Windows Sockets standard.  JSB's creation of a normalized sockets interface in their Virtual Socket Library together with NetManage's efforts to extend Berkeley Sockets in a Windows environment provided the catalyst for Windows Sockets.  The idea for Windows Sockets was first proposed by JSB's Martin Hall at a Birds Of a Feather session at Fall Interop in San Jose in September 1991.

Around 40 companies were formative members of the Windows Sockets group.  Representatives from these companies gathered in Seattle in December 1991 to debate and resolve the basis of Windows Sockets.  Considerable effort between then and January 1993, which involved a substantial amount of Internet-based email discussion, together with several meetings and 2 interoperability testing sessions (WinSockathons) led to version 1.1 of the Windows Sockets specification which is the definitive reference point for Windows Sockets today.  WinSockathon II proved that Windows Sockets 1.1 is a viable standard for application/network implementation interoperability.
WINDOWS SOCKETS STATUS
Currently, Windows Sockets version 1.1 serves as the authoritative, complete version of the Windows Sockets API for the TCP/IP protocol family.  Published on January 20 1993, this serves as the official document for implementers and applications developers to follow during development.

Windows Sockets is presently in a period of consolidation allowing version 1.1 to stabilize.  It is anticipated that this consolidation period will run until the end of 1993.  This allows implementers, applications developers, and end-users to develop, consolidate and leverage this exciting technology.

As minor problems and inconsistencies in the published version of the 1.1 specification may exist, an "annex" will be maintained documenting and clarifying any such issues. The annex will not incorporate any new functionality or features not documented in the published version of the 1.1 specification. Clarifications and corrections made in the annex will be rolled into the next version of the specification, removing the need to maintain the annex further.

WINDOWS SOCKETS AND INDEPENDENT SOFTWARE VENDORS (ISVs)
Although coupled tightly with Microsoft's Windows operating system, the Windows Sockets specification is not owned by Microsoft Corporation.  It is instead an independent specification created and developed through the cooperation of several software vendors.  Many software vendors and corporations are using the Windows Sockets specification to create
1. Windows Sockets compliant programming interfaces for network transport implementations
2. Windows Sockets compatible applications i.e. applications capable of running over ANY Windows Sockets compatible implementation.

For details of Windows Sockets implementations and Windows Sockets compatible applications see the appendices to this document.
CHARTER
The charter of the Windows Sockets group is to develop an open standard for network programming on Microsoft Windows. Any interested parties, including (but not limited to) vendors, researchers, and 
individuals are welcome to join the effort.
THE WINDOWS SOCKETS GROUP
Acting Officers
The acting officers of the Windows Sockets committee are:

Martin Hall	Moderator	JSB Corporation
Mark Towfiq	Coordinator	Microdyne Corporation
David Treadwell	Editor 1.1, Addendum	Microsoft Corporation
Geoff Arnold	Editor 1.0	Sun Microsystems
Henry Sanders		Microsoft Corporation

These officers were nominated at the "Birds Of a Feather" (BOF) session held at Interop Fall in '91, or volunteered as work items were generated.
Group
The success of Windows Sockets would not have been possible without the creativity, energy and contribution of many other people and organizations.  The Windows Sockets group continues to thrive and debate issues on the mailing list and newsgroup.
HOW TO GET INVOLVED
Mailing List
A Windows Sockets electronic mailing list is maintained for technical discussions of the Windows Sockets specification and for announcements of the availability of new versions of Windows Sockets products, and of the specifications themselves. The list is maintained by Mark Towfiq at Microdyne. To subscribe, e-mail winsock-request@microdyne.com.  To send mail to the list, e-mail winsock@microdyne.com.  The list is not moderated.  It is suggested that you use signatures at the end of your messages, as some mailers do not decode the headers to distinguish the initial sender of a given message.

Please note that product announcements are unwelcome on the Windows Sockets mailing list.  A special mailing list has been set up for product announcements: winsock-announce@microdyne.com.

Newsgroup
The mailing list winsock@microdyne.com is gatewayed to the USENET newsgroup alt.winsock. This provides an alternative interface to those wishing to discuss Windows Sockets.
CONTRIBUTING AND RETRIEVING WINDOWS SOCKETS MATERIALS
FTP Sites
The Windows Sockets specification, in a variety of forms, along with public domain and sample software,  press releases and miscellaneous other components is available from the following anonymous FTP sites:

microdyne.com:	/pub/winsock
vax.ftp.com:	/pub/winsock
SunSite.UNC.EDU	/pub/micro/pc-stuff/ms-windows/winsock
rhino.microsoft.com	winsock
MEETINGS
The Windows Sockets group meets irregularly to further the specification.  Such activities are usually focused around a new version of the specification.  If you wish to participate in such meetings which not only take place on an ad hoc basis but also occur in different places, then please make sure you either subscribe to the mailing list or watch the newsgroup.
INTEROPERABILITY TESTING FORUMS - WINSOCKATHON
In 1992 and 1993 Sun Microsystems was kind enough to offer their facilities twice to host Windows Sockets interoperability testing, colloquially known as WinSockathon I and WinSockathon II.  These get-togethers are extremely valuable as application vendors and implementers can determine and resolve problems with their code and with the specification in a timely and efficient fashion.  These are also the events where treasured mementos such as the Windows Sockets baseball cap infrequently materialize.  If you are interested in participating in these events please subscribe to the mailing list or newsgroup.
WINDOWS SOCKETS COMPLIANCE 
The issue of conformance to the Windows Sockets specification by both Windows Sockets implementations and Windows Sockets applications is currently under discussion.  Windows Sockets is being specified increasingly as a required standard in corporate network computing environments.  This and the widespread acceptance of Windows Sockets leads to the need for a more formal validation process for Windows Sockets compatible applications and Windows Sockets compliant network implementations.  It is hoped that progress can be made on this front in the near future.

Applications capable of running with Windows Sockets implementations are referred to as "Windows Sockets compatible".  Windows Sockets implementations which conform to the Windows Sockets specification are known as "Windows Sockets Compliant".

Although not an official validation or certification tool, as an aid to Windows Sockets implementers, Microsoft has developed the Windows Sockets API Tester (or WSAT) and offers it free of charge to implementers of Windows Sockets Dynamic Link Libraries (DLLs). The tester provides both standalone and client-server test scenarios covering the entire Windows Sockets specification. It is currently available in beta form by e-mailing wsat@microsoft.com (to which comments and questions should also be directed). When completed, WSAT will be made available on the anonymous FTP sites as well.


WINDOWS SOCKETS MARKETING ACTIVITIES
Windows Sockets Forums
From time to time, Windows Sockets marketing activities take place.  Although largely a technical group, the ongoing success and prevalence of Windows Sockets does bear some relation to the amount of publicity it receives.  To this end, press releases are compiled for significant Windows Sockets occasions such as the release of a new specification.  Individual vendors have, to date, produced various Windows Sockets "profile raisers" such as the baseball cap and computer toppers.  Various people are regularly involved in giving presentations on Windows Sockets, moderating panels and so on.

We are currently exploring the idea of a "Windows Sockets Showcase", possibly for Interop Fall '93.  All parties interested in participating this event should contact Dan Reis at JSB Corporation (Tel: 408 438-8300, Email: danr@jsbus.com).

Windows Sockets Implementations and Applications List
It is beneficial to have marketing contact points for Windows Sockets vendors (network and application vendors).  If you are interested in having your company name included in the list of Windows Sockets implementations or applications incorporated in the appendices of this document and also used in other miscellaneous places, please supply appropriate product information together with a contact name, telephone number and address to Martin Hall at JSB Corporation (Tel: 408 438-8300, Email: martinh@jsbus.com).

A supplementary mailing list is now available for product announcements.  The list is: winsock-announce@microdyne.com.  This should be used to announce the availability of Windows Sockets implementations, applications and related products.
USEFUL WINDOWS SOCKETS PUBLICATIONS
You may find any or all of the following Windows Sockets publications useful.

Windows Sockets: An Open Interface for Network Programming under Microsoft Windows, Martin Hall, Mark Towfiq, Geoff Arnold, David Treadwell, Henry Sanders.  The definitive specification, this is available from various sources including ftp sites detailed above. Published January 20 1993.

Plugging into TCP/IP with Windows Sockets, Victor Volkman. Windows/DOS Developer's Journal. Vol. 3, No. 12 December 1992

Untangling the Windows Sockets API, Mike Calbaum, Frank Porcaro, Mark Ruegsegger, Bruce Backman. Dr. Dobb's Journal #197 February 1993.

The Windows Sockets API, Ralph Davis. Chapter 6 in "Windows Network Programming". From "The Andrew Schulman Programming Series". Addison-Wesley Publishing Company 1993

Windows Sockets - Get Plugged in to Serious Network Programming, J Allard , Keith Moore, David Treadwell,. Microsoft Systems Journal (forthcoming)
WINDOWS SOCKETS FUTURE
Windows Sockets has come a long way in a short period of time.  In just 18 months, we've published a great specification, and have seen successful integration of applications over many different implementations. Although the remainder of 1993 will be intentionally slow in terms of additions to the specification for stability sake, we encourage people to begin thinking about what they'd like to see in future versions of Windows Sockets.

Over the next few months, the acting officers will be compiling a list of issues for consideration in the next revision of the specification. Once we get a fair level of agreement, the group will launch into proposals and technical discussions full-steam.

Current wish list items include:
SYMBOL 109 \f "ZapfDingbats" Transport independence
SYMBOL 109 \f "ZapfDingbats" Sharing of socket descriptors between processes
SYMBOL 109 \f "ZapfDingbats" Mechanism for available host name collection
Appendix A. WINDOWS SOCKETS IMPLEMENTATIONS
The following companies provide Windows Sockets implementations.  Please contact the company for details of current availability.

Vendor & Contact Product Name Product Description 3Com Corporation
5400 Bayfront Plaza, PO Box 58145
Santa Clara, CA 95052-8145 3Com TCP with Demand Protocol Architecture version 2.1A versatile TCP/IP connectivity product which offers DOS and Windows users terminal emulation (DEC & IBM) and file transfer applications, as well as the most widely used API's on which to run your favorite applications (BAPI for DOS & Win, DOS Sockets, & Windows Sockets). Beame & Whiteside
PO Box 8130
Dundas, Ontario
Canada
L9H 5E7

Contact: Sales
416 765 0822
sales@bws.com BW-TCP
BW-NFS TCP/IP & NFS implementatons including Windows Sockets support.Brad Wilson 
914 Douglas, Suite #1 
Mt. Pleasant, Michigan   48859 
517 773-1553 TCPMaster
A free Windows Sockets v1.1 over Ethernet, SLIP and PPPDistinct Corporation
14395 Saratoga Avenue
Saratoga, CA 95070

Contact: sales
408 741 0781 phone
408 741 0795 fax
mktg@distinct.com Distinct TCP/IP for Windows Essex Systems, Inc. 
One Central Street 
Middleton, MA 01949 

Contact: Dan Lanciani
(508) 750-6200 TCP/2-DOSThe TCP/2-DOS stack is a protected-mode implementation of Berkeley sockets for DOS and Windows, running as a virtual device in Windows 386 enhanced mode.Firefox Communications Ltd,
Cranmore House
Cranmore Boulevard
Solihull, West Midlands. United Kingdom. B90 4RX. 
Contact:  Victor Woodward. 
(+44) 21 609 6090

Firefox Inc 
P.O. Box 8265 
Kirkland, WA 98034-0165
USA

(206) 827-9066 NOVIX II Gatewayed access to TCP/IP via IPX/SPX LAN through TCP/IP stack provided as an NLM on a netware server.FTP Software, Inc. 
2 High Street 
North Andover, MA 01845

(508) 685-3300
info@ftp.com PC/TCP Network Software for DOS/Windows Frontier Technologies 
10201 N. Port Washington Rd. 
Mequon, WI  53092 
414-241-4555 

Contact: Ray Langford 
tcptech@frontiertech.com Super-TCP/NFS for Windows TCP/IP connectivity package includes MIME Email, NFS Client/Server, FTP/TFTP Client/Server, VT320, tn3270, News Reader, LPR Client, Talk, Remote Protocols. IBM
IBM Corp.
PO Box 12195
Atten: Pat Coyle
G90A/503 D109
RTP, N.C. 27709

Contact: Patricia (Pat) Coyle
(919) 254-6531
pacoyle@ralvmm.vnet.ibm.com IBM TCP/IP V2.1 for DOS IBM TCP/IP V2.1 for DOS, runs in extended memory as a DOS TSR supporting BSD real mode sockets as well as Windows Sockets API 1.1JSB Corporation
108 Whispering Pines Drive
Scotts Valley, CA 95066

Contact: Dan Reis
408 438-8300
danr@jsbus.com Virtual Socket Library for Windows Provides Windows Sockets API for over 25 existing PC TCP/IP product versions.Lan Design
P.O. Box 506
Wendywood
2144
South Africa
Tel: (11) 444 1050Contact: Neill Rosenthal
100100.23@compuserve.com INET for Windows TCP/IP suite fully implemented for Windows 3.1 including .DLL kernel with routing capabilities using DOS TSR Packet drivers, Telnet VT and 3278, FTP client and server, print client and server and WINSOCK.DLL.Lanera Corp
Lanera Corporation
516 Valley Way
Milpitas, CA 95035

408-956-8344
Contact: Peter Pham
Internet: lanera@netcom.com TCPOpen TCP/IP for DOS/Windows with NDIS, ODI, Packet driver interface, Dial-up SLIP upto 38.2 Kbps, Token Ring/Ethernet, NFSMicrosoft (Windows NT 32-bit)
One Microsoft Way
Redmond, WA 98112
206-882-8080 

Contact: J Allard Windows/NT 3.1 and
Microsoft Windows NT Advanced Server 3.1 Includes 16 and 32-bit Windows SocketsMicrosoft (Windows NT 16-bit)
One Microsoft Way
Redmond, WA 98112
206-882-8080 

Contact: J Allard Windows/NT 3.1 and
Microsoft Windows NT Advanced Server 3.1 Includes 16 and 32-bit Windows SocketsMicrosoft (Windows 3.x 16-bit)
One Microsoft Way
Redmond, WA 98112
206-882-8080 

Contact: J Allard Microsoft TCP/IP for Windows for Workgroups Includes Windows SocketsNetManage
20823 Stevens Creek Blvd
Cupertino, CA 95014 

408-973-7171
info@netmanage.com Chameleon and ChameleonNFS Chameleon is a TCP/IP applications package for Windows which includes: Telnet, FTP, SMTP/Mail, POP, TN3270, TFTP, Ping, Bind, SNMP, Finger, Whois, IP routing, Custom and Statistics.Novell,Inc
180 Fortune Drive
San Jose, CA 95131

(408) 473-8372 Novell Lan WorkPlace for DOS Spry, Inc
316 Occidental Avenue South, 2nd Floor
Seattle, WA 98109

206 447-0300
Contact:  Deanna Leung
deanna@spry.com
AIR for Windows AIR for Windows allows a PC to login to any Windows Sockets compliant UNIX or TCP/IP host.  Telnet, ftp, lpr,nfs and mail is included.
SunSelect
2 Elizabeth Drive
Chelmsford, MA 01824-4195

508 442-2300
Contact:Sun PC-NFS version 5.0 Turbosoft P/L
248 Johnston St
Annandale, NSW 2038
AUSTRALIA

(+612) 552-1266 TTCP TCP/IP stack including ftp and BAPI interface WRQ Reflection 
2815 Eastlake Ave. E 
Seattle, WA 98102

206-324-0350 
Contact: Evan Kaplan TCP Connection
NS Connection
3000 Connection The Wollongong Group
1129 San Antonio Road
Palo Alto, CA  94303

Contact: Earle Speranza
800 872-8649
sales@twg.com Wollongong PathWay Access for DOS
Appendix B. WINDOWS SOCKETS APPLICATIONS (Commercial and Public Domain)
The following companies are providing commercial Windows Sockets compatible applications.  Please contact the company for details of current availability.

Vendor & Contact Product Name Product Description Windows Sockets - Version(s) SupportedAGE Logic
9985 Pacific Heights Blvd
San Diego, CA 92121

Contact: Sales
619 455-8600 XoftWare/32 for Window 32-bit X Window Server software for Microsoft Windows-based PCs1.1Attachmate Corporation 
3617 131st Ave SE 
Bellevue, WA 98006

(206) 644-4010 
Fax:   (206) 747-9924 Attachmate Extra! for Windows 3270 Emulation Software for the Windows environment1.1American Computer and Electronics Corporation
209 Perry Pkwy
Gaithersburg MD  20877

Contact: Bob Natale
301 258 9850
natale@acec.com NetPlus/Fault Management System
NetPlus/Configuration Management System
NetPlus/Accounting Management System
NetPlus/Performance Management System
NetPlus/Security Management System
NetPlus/Directory Management System
NetPlus/Telephony Management System
NetPlus/Product Backplane System NetPlus (tm) is a family of integrated network management applications supplying full-service OSI FCAPS coverage and using the SNMPv2 management protocol.1.1Center for Applied-Large Computing
(CALC)
Polytechnic University

Contact: Marc B. Manza
manza@flash.poly.edu
Green Pages Distributed system providing convenient access to cataloged information for assisting users in locating and retrieving information
concerning global change 1.1 Distinct Corporation
14395 Saratoga Ave, Suite 120
Saratoga, C 95070

Contact: sales
408 741-0781 phone
408 741-0795 fax
mktg@distinct.com Distinct TCP/IP- SDK





Distinct TCP/IP -TCPTools ONC RPC/XDR DLL with RPCGEN, Telnet, FTP and NetWin DLLs running on Windows Sockets with complete APIs; 100% DLL Windows Sockets implementation included with support for Ethernet, Token Ring, FDDI, ISDN, SLIP and PPP; smallest and fastest implementation available

Multiple concurrent Telnet sessions with terminal emulation, drag and drop
FTP (client and server), TFTP, Ping, LPR/LPD, Back-Up with TAR; SLIP and PPP
with scripting included. 1.1 Frontier Technologies 
10201 N. Port Washington Rd. 
Mequon, WI  53092 
414-241-4555 

Contact: Ray Langford 
tcptech@frontiertech.com Super-TCP Apps for Windows TCP/IP networking applications include MIME Email, NFS Client/Server, FTP/TFTP Client/Server, VT320, tn3270, News Reader, LPR Client, LPD Server, Talk, Remote Protocols.1.0, 1.1Gallagher & Robertson A/S
Bull HN Information Systems Inc
Postboks 1824, Vika
P.O. Box 7027
0123 Oslo
Norway

Contact: Mike Robertson
+47 2 41 85 51
mike@sx.gar.no Glink for Windows General purpose emulator with accent on the Bull environment. Does VIP7700, VIP7800 emulation for Bull mainframes, VT102 through
VT340 minus graphics functionality, Viewdata, Minitel. 1.1 Gradient Technologies Inc
577 Main St., Suite 4
Hudson, MA 01749

Contact: Bill Blackwell
(508) 562-2882
wcb@gradient.com
PC-DCE Open Software Foundation (OSF) Distributed Computing Environment (DCE) for Windows1.1Genisys
314 S. Jay St
Rome, NY  13440

Contact: Michael J. Baldwin
315 339 5502
baldwin@GENISYS.com GENISYS Comm Pack++ (GCP++) The GCP++ TCP/IP toolkit for Windows Sockets 1.1 provides a high-level API to UDP, TCP, TELNET, TFTP and PEER protocols, using a 3-function API or Visual Basic Custom Controls.1.1Hughes LAN Systems

Contact: K.C. Clawson
kcc@hls.com
ProLINC 1.1 Hughes LAN Systems

Contact: K.C. Clawson
kcc@hls.com
ProLINC WINtools TCP/IP utilities including telnet, ftp, ping etc. 1.1 Hummingbird Communications Ltd
2900 John Street, Unit 4
Markham, Ontario L3R 5G3
CANADA

416 470-1203 eXceed/WX Server for MS Windows 1.1 Hypercube Inc
Unit 7-419 Phillip St
Waterloo, Ontario N2L 3X2
CANADA

519 725-4040 Modelling Software, Remote Process Execution 1.1 I-Kinetics, Inc.
19 Bishop Allen Drive, Cambridge MA 02139

Contact: Abe Hirsch
Phone: (617) 661-8181
sales@i-kinetics.com I-Bridge for Windows Complete solution for accessing Oracle and Sybase 
from MS Windows Applications 1.1 John Fluke Mfg, Co.
P.O. Box 9090
Everett WA 98206

206 356-5790 Instrument Control Software 1.1 JSB Corporation
108 Whispering Pines Drive
Scotts Valley, CA 95066

Contact: Dan Reis
408 438-8300
danr@jsbus.com MultiView DeskTop



MultiView/XWindows/UNIX PC integration incorporating high performance ANSI, SCO Console, VT100 & VT220 terminal emulation and including DDE support and the JSB Virtual Socket Library

Windows/UNIX PC integration incorporating high performance X Server and ANSI, SCO Console, VT100 & VT220 terminal emulation and also including DDE support and the JSB Virtual Socket Library1.0, 1.1Kvam data as
PO.BOX. 1101, Lura
4301 SANDNES
NORWAY

Contact: Knut Rogde
+47 4 623766
info@kvamdata.no FICS 4GL database & application tool 1.1 Lanera Corp
Lanera Corporation
516 Valley Way
Milpitas, CA 95035

408-956-8344
Contact: Peter Pham
Internet: lanera@netcom.com Terminal emulation for DEC, IBM, ANSI, TN3270, etc  with built-in TELNET/FTPMicrodyne Corporation
239 Littleton Rd., Westford, MA 01886

Contact: Harald Skardal
508-392-9953
haralds@Microdyne.COM FTP Shell for Windows Drag-and-drop FTP client for Microsoft Windows.1.1NetManage Inc
20823 Stevens Creek Blvd 
Cupertino, CA 95014 408 973-7171

Contact: Sales
408-973-7171
info@netmanage.com Chameleon,
ChameleonNFS TCP/IP that is 100% DLL based and supports Windows Sockets 1.1. 1.1 Network Computing Devices
9590 SW Gemini
Beaverton, OR 97005

503 641 2200
robw@pcx.ncd.comPC-XviewPC X Server for Windows and Windows/NT 1.1 Optigraphics Corporation
9339 Carroll Park Drive, San Diego, CA  92121

Contact: Kari Johnson
619-625-3000
kari@optigfx.com Engineering Document Automation System Allows scanning, viewing, markup, edit, and printing of engineering documents1.1Persoft, Inc.
465 Science Drive
Madison, WI 53711

Contact: Carol Nelson
608 273-6000SmarTerm 420 for Windows

SmarTerm 340 for Windows

SmarTerm 470 for Windows Terminal emulation for Microsoft Windows for PC connectivity to UNIX, VAX/VMS and Data General hosts 1.1 SAS Institute Inc
SAS Campus Dr. Cary, N.C. 27513

Contact: Glenn Horton
919-677-8000
sasdgh@unx.sas.com The SAS System Application developent system that allows users to develop applications that are easily ported between the many hosts that the SAS System runs on1.1Softronics, Inc.
5085 List Drive
Colorado Springs, CO 80919
719-593-9540

Contact:  Jim Cook
jcook@softron.softronics.com Terminal emulation for DEC, IBM, HP, Tanden, Data General, Tektronix, Wyse, TN3270, Televideo, etc. with built-in TELNET/FTPSpry Inc
1319 Dexter Avenue North
Seattle, Washington  98109

Contact: Deanna Leung
(206) 286-1412
deanna@spry.com AIR for Windows


WinSock RPC


AIRMAIL

AIR for Workgroups


AIR NFS SPRY's AIR for Windows allows a PC to login to any UNIX or TCP/IP host

An implementation of Sun's ONC+/TI-RPC library for Microsoft Windows.

A Windows implementation of Internet Mail.

TCP/IP for Microsoft's Windows for Workgroups that configures three protocols simultaneously on the desktop using one network card.

Users can mount UNIX File Systems as virtual drives on the PC.
1.1 Sycomp Pty Ltd
Level 4
1 James Place
North Sydney 2060
AUSTRALIA

Contact:
troy@cbme.unsw.edu.au
CorVu Enterprise Information System, End user SQL database query tool, Report Writer, Forecasting
1.1 TurboSoft Pty Ltd
248 Johnston St
Annandale NSW 2216
AUSTRALIA

Contact: Matthew Green
+(612) 552-1266
info@abccomp.oz.au TTWin Terminal emulation covering DEC, IBM, HP, PRIME, Wyse and others, File Transfer, Network Printing
1.1 Unipalm Ltd
216 The Science Park
Milton Road
Cambridge  CB4 4WA
England

Contact: Tom Kermeen
tom@unipalm.co.uk Mail-it Mail-it is an MS Windows application,providing the PC user who wishes to have direct access to Unix mail networks and the tens of millions of persons who have access to the internet with easy to use mail handling facilities including compose,send,receive,read and organise into folders.1.1VisionWare UK
57 Cardigan Lane
Leeds LS4 2LE
ENGLAND

(+44) 532-788858

VisionWare USA
1020 Marsh Road, Suite 220
Menlo Park, CA 94025

415 325-2113 XVision X Server for Microsoft Windows 1.1 VisiSoft
2700 N.E. Expressway, Suite B-700.
Atlanta, GA 30345

Contact: Al McCabe
800 VISINET
(404) 320 0077 VisiNet Network Management for Microsoft LAN Manager, IBM LAN Server, Novell Netware, NetBIOS, and SNMP1.1WRQ Reflection 
2815 Eastlake Ave. E 
Seattle, WA 98102

206-324-0350 
Contact:  Evan Kaplan Reflection X An X Window System Server 1.1 XSoft
3400 Hillview Ave
Palo Alto, CA 92304

800 428-2995 Document Management 1.1 The following public domain Windows Sockets compatible applications are available.
Author & Contact Product Name Product Description Windows Sockets - Version(s) SupportedKevin Gamiel - 
3021 Cornwallis Road
Research Triangle Park, North Carolina
27709-2889

KEVIN.GAMIEL@CNIDR.ORG
919-248-1499 
The Gopher Book





WAIS Manager Access the Internet via a "book" filled with text, pictures, and services.

sunsite.unc.edu
/pub/micro/pc-stuff/ms-windows/winsock/apps/gophbook.zip

Perform free-text queries on hundreds of information databases around the world.

sunsite.unc.edu
/pub/micro/pc-stuff/ms-windows/winsock/apps/wais_wsk.zip

1.1





1.1
Appendix C. Frequently Asked Questions (FAQ)
Frequently Asked Questions About
Windows Sockets Version 1.1
22 April 1993

This FAQ has been put together by Mark Towfiq, with much-appreciated assistance from Jay Allard, Bruce Backman, Paul Brooks, Martin Hall, Bob Quinn, Ed Schwalenberg, Bill Tang, and Dave Treadwell.  If you have any modifications to this FAQ, send them to towfiq@Microdyne.COM, and they will be folded into the next revision.

1.  What is Windows Sockets?

Answer: The Windows Sockets specification defines a network programming interface for Microsoft Windows which is based on the "socket" paradigm popularized in the Berkeley Software Distribution (BSD) from the University of California at Berkeley.  It encompasses both familiar Berkeley socket style routines and a set of Windows-specific extensions designed to allow the programmer to take advantage of the message-driven nature of Windows.

The Windows Sockets Specification is intended to provide a single API to which application developers can program and multiple network software vendors can conform.  Furthermore, in the context of a particular version of Microsoft Windows, it defines a binary interface (ABI) such that an application written to the Windows Sockets API can work with a conformant protocol implementation from any network software vendor.  This specification thus defines the library calls and associated semantics to which an application developer can program and which a network software vendor can implement.

Network software which conforms to this Windows Sockets specification will be considered "Windows Sockets Compliant".  Suppliers of interfaces which are "Windows Sockets Compliant" shall be referred to as "Windows Sockets Suppliers".  To be Windows Sockets Compliant, a vendor must implement 100% of this Windows Sockets specification.

Applications which are capable of operating with any "Windows Sockets Compliant" protocol implementation will be considered as having a "Windows Sockets Interface" and will be referred to as "Windows Sockets Applications".

2.  What is the latest version?

Answer: The latest version of the specification is 1.1.

3.  When is the next rev of the specification?  Why not sooner?

Answer: The next rev. (2.0) will not be until towards the end of 1993.  We need 1.1 of the API to become firmly settled and implemented first.

4.  Where can I get a/the WINSOCK.DLL?

Answer: You should first contact the vendor from whom you obtained your TCP/IP software. JSB Corporation also provide a WINSOCK.DLL for existing TCP/IP implementations.

5.  Do I need a TCP/IP already to use it? 

Answer: Yes.  A WINSOCK.DLL is just an interface to whatever existing TCP/IP you already have installed. 

6.  Why isn't there just one WINSOCK.DLL?  Do I need a TCP/IP already to use it?

Answer: The Windows Sockets specification defines the top level of the DLL, the part which is called by user programs.  The method a given WINSOCK.DLL will use to access TCP/IP (or NetWare, or AppleTalk, or DECNet ...) depends on the networking package you have installed, and therefore must vary.  A WINSOCK.DLL is therefore just an interface to whatever existing protocol you already have installed.  An illustration would help:

       +---------------------------------+
       |  WinSock compliant application  |
       +---------------------------------+
       +---------------------------------+ <--- WinSock API
       |       Windows Sockets DLL       |
       +---------------------------------+
       +---------------------------------+ <--- Protocol Stack API
       |   Protocol Stack (e.g. TCP/IP)  | (typically proprietary)
       +---------------------------------+
       +---------------------------------+ <--- Hardware Driver API
       |        Hardware Driver          |   (Packet Driver, NDIS, ODI,
       +---------------------------------+    or proprietary)
       +---------------------------------+ <--- Hardware Interface
       |   Network (hardware) Interface  |    (hardware specific)
       +---------------------------------+
                       |
                       +----> network

7.  Where can I get sample applications and tests?

Answer: Files and information related to the Windows Sockets API are available via FTP (user: "anonymous", password: your e-mail address) on the host SunSite.UNC.EDU, in /pub/micro/pc-stuff/ms-windows/winsock, which is a mirror of /pub/winsock on Microdyne.COM (SunSite has a much faster connection to the Internet, so you are advised to use that).  Note: if you do not have FTP access to the Internet, send a message with the word "help" in the body to either ftpmail@SunSite.UNC.Edu, or ftpmail@DECWRL.DEC.Com (in the UK mail to ftpmail@doc.ic.ac.uk), to obtain information about the FTP to Mail service there.

8.  Will Windows Sockets be in _____?

8.1.  Will Windows Sockets be in Windows NT?

Answer: Yes.  In 16 and 32-bit versions.

8.2.  Will Windows Sockets be in Windows for Workgroups?

Answer: Yes.

8.3.  Will Windows Sockets be in DOS?

Answer: Paul Brooks of TurboSoft (paul@abccomp.oz.au) tells me:

As for a Windows Sockets for DOS - we have a library that is pretty much complete. The goal was to produce a DOS library and Binary API which would allow developers to code applications using the Windows Sockets 1.1 spec. and have it run exactly the same under DOS as Windows - blocking and non-blocking modes, Asynchronous calls, the works. Apart from some AsyncGetXXXbyYYY calls the rest works, although it is not possible to capture all the Windows-specific semantics of some areas.

I am sure you can contact him for more information.  JSB also has a standardized Berkeley Sockets API for DOS which provides access to all TCP/IP implementations.

8.4.  Will Windows Sockets be in UNIX?

Answer: Well, since it came from BSD UNIX, there's not much need.

8.5.  Will Windows Sockets be in Win32-S?

Answer: I think so.

9.  What about standard APIs for ____?

9.1.  What about standard APIs for FTP?

Answer: Not yet.

9.2 What about standard APIs for Telnet?

Answer: Not yet.

9.3 What about standard APIs for SNMP?

Answer: In the works.  Send e-mail to winsnmp-request@Microdyne.COM to join the list.

9.4 What about standard APIs for RPC?

Answer: Microsoft will be providing an implementation of DCE RPC.  Also in the works is the definition of a standard implementation of ONC RPC (known as RPC for Windows) which will be made available by multiple vendors.  To contribute to the discussion, send email to rpc4win@wco.ftp.com.

9.5 What about standard APIs for TLI/XTI?

Answer: No, not yet.  Vendors chose to do Windows Sockets because of the sockets application and knowledge base, however anyone out there is free to try a Windows TLI/XTI Specification.

10.1  Does Windows Sockets work over protocols other than TCP/IP?

Answer: Yes, it does.  But we know of no vendors supplying one currently.

10.2 Will it?

Answer: Yes.  Windows NT will include mechanisms for multiple protocol support in Windows Sockets, both 32-bit and 16-bit.

11.  Why no SOCK_RAW?

Answer: SOCK_RAW is optionally implemented by many major Windows Sockets vendors.  It is not mandated now because: 1) not every stack vendor can supply a complete SOCK_RAW interface, and 2) we did not have time to define the minimal subset every vendor could provide (e.g. maybe just ICMP).

12.  Why isn't it possible to share sockets between tasks?

Answer: The real answer is that it wasn't considered sufficiently important for 1.1, but is high on the list for inclusion in 2.0.

13.1.  How do I get my IP address?

Answer: Do a gethostbyname() on the output from gethostname().

13.2.  Why no SIOCGIFADDR?

Answer: It was not included because there were concerns it could not be supported across platforms.  It may be included in version 2.0 of the spec.

14.  When should I use blocking vs. non-blocking sockets?

Answer: Try to use non-blocking sockets whenever possible; certainly if you are coding a Windows application from scratch.  Blocking sockets should only be used when trying to maintain portability between UNIX/MS-DOS and Windows.  Please note you have to consider issues of application reentrancy when using blocking sockets.  However, using non-blocking sockets your application will not be re-entered via a WINSOCK.DLL.

15.  What about other socket options that BSD supports?  Ioctls?

Answer: Some vendors may support them.  Do not rely on ones not explicitly mentioned in the specification, however.

16.  How can I get the local username?

Answer: No can do from Windows Sockets.  Win32 (e.g. NT) has an API, GetUserName(), for it, but there is no generic mechanism in Win 3.1.

17.  Do I need to initialize the WSAData structure before calling WSAStartup?

Answer: No, WSAStartup does not retrieve the contents of the WSAData structure pointed to, it fills it in.

18.  If I write a Windows Sockets program, will I be able to communicate with a Sockets program on UNIX or any other non Windows platform?

Answer: This common question is the result of confusing protocols with the APIs; communicating programs need not have been created with the same APIs, as long as they are using the same (transport & network) protocols.

19.  Is it possible to create sockets that map to a dll rather than an application?  I have tried a WSAStartup() as part of my LibMain, but the sockets that are created are owned by the application, not by the DLL. It would be desirable for me to have some of the sockets that are opened have "A Global (DLL wide) Scope".

Answer: The way this situation has been dealt with by developers is to have your DLL create a "helper process" which will perform all Windows Sockets operations on behalf of your applications (thereby having all sockets owned by the helper process' task).

20.  A *Class* of questions that could be answered are related to porting extant BSD applications to Windows Sockets: "How to I implement the xxxx function call in my Windows Sockets application?" (e.g. fcntl(), readv(), etc).

Answer: In general, you will have to code such functions yourself, although it would not hurt to suggest them for the next revision of the specification as well.

21.  Is there a Pascal/Visual Basic/Visual Cobol header file for Windows Sockets?

Answer: The Pascal form is already in the FTP archive.  Look there for any other header files that people may have developed so far.


Windows and Windows NT are trademarks of Microsoft Corporation.
A Guide to Windows Sockets

===The End===

