VTSocket - Windows Socket Control for Visual Basic and Visual C++ Version 1.0i Copyright (C) 1993 by Visual Technology Products This is a shareware distribution of VTSocket. VTSocket is a custom control for use with Microsoft Visual Basic and Visual C++. With this control you may create applications using the visual products ONLY that can communicate as clients and/or servers on the Internet or other TCP/IP based networks. This custom control DOES REQUIRE that you have a TCP/IP product installed on your computer system that supports the Windows Sockets Application Programming Interface. If your TCP/IP product includes a WINSOCK.DLL module, then this custom control should work. Some vendors that provide TCP/IP products with Windows Sockets support include: Microsoft FTP Software Lanera NetManage Frontier Distinct Novell The following files are included with this distribution: VTSOCKET.TXT - This file VTSOCKET.VBX - The VTSocket custom control VTSOCKET.HLP - The online VTSocket User Manual VTSOCKET.INC - An include file for VB that documents error codes returned by VT Sockets CLIENT.MAK - A very simple Visual Basic client application CLIENT.FRM SERVER.MAK - A very simple Visual Basic server application SERVER.FRM that will communicate with the above client VTTELNET.MAK - A simple, but complete Telnet VT100 terminal TELNET.FRM emulator CONNECT.FRM VTFTP.MAK - A simple, but complete drag-and-drap File FTP_FORM.FRM Transfer application FTP_CONN.FRM FTPGLBL.BAS FTP_FORM.FRX PAGE.ICO TRASH.BMP INFO.BMP THREED.VBX - 3D custom control used by VTTelnet and VTFTP KEYSTAT.VBX - Key status custom control used by VTTelnet MSOUTLIN.VBX - Outline custom control used by VTFTP To install VTSocket copy the .VBX and .HLP files to your \WINDOWS\SYSTEM directory. The .VBX file is included for use by an application in the same way that other custom controls are included. You may peruse the online help file by including a copy of the control in an application, selecting the control, and then pressing the Help (F1) key. You may also review the Users Manual by entering the following command from the Program Manager file/run command line: WINHELP VTSOCKET This Visual Product Control is NOT free. You are authorized to test the control for 30 days. At the end of this test period you may either register the control by sending your name, organization (if any), address, and $50 to: Visual Technology Products 4317 Olley Lane Fairfax, VA 22032 or you should discontinue using the control. Please note that a license is required for development only. Applications that are compiled using a licensed development system do not need to be registered. In other words, there are no run time license fees. In exchange for registration, you will receive a license module (VTPROD.LIC), full written documentation, and the latest version of VT Socket and sample programs. You will also be registered to receive notification of new products, such as the upcoming 32 bit version of VTSocket for Windows NT. Please feel free to fax any comments or questions to (703) 978-7389, or send Internet mail to vtprod@access.digex.com. Product History V1.0i 1. Added event management code to several internal functions to prevent WSAEINPROGRESS errors. These errors were only known to occur with Trumpet TCP. 2. Changed several routines to collect information from the MODEL structure for subsequent use, rather than using entries in the MODEL structure directly. This prevents errors that occur when the location of MODEL changes during a winsock function call that relinquishes control to VB, with the result that the MODEL location is sometimes invalid on return from a winsock function. V1.0h 1. Changed recv() function to issue yield() and then retry in response to a WOULDBLOCK error. 2. Changed send() function to issue yield() and then retry in response to an INPROGRESS error. 3. Corrected the display of the days left on evaluation in the shareware dialog box. V1.0g 1. Changed call to WSAStartup() to remove presentation of a Dialog Box when a startup error occurs. Any subsequent use of VT Socket will then return a NOTINITIALIZED error. This allows the VB developer to determine the proper recovery action. 2. Added yield() function to send() and recv() routines. Some winsock implementations seem to expect the application to yield between calls to allow the winsock to process previous requests. V1.0f - 1. Added logic to closesocket routines to first reset the socket to blocking mode. 2. Added additional error checking logic to getsockopt(), setsockopt(), and WSAAsyncSelect() routines. V1.0e - 1. Added logic to fire connect/disconnect events for all client sessions and for server sessions other than the listener (server and index = 0). Previously, only connect/disconnect from a remote host produced these events. 2. Suppressed the shareware dialog box presentation when the VT Socket control is loaded for a server with index > 0. This prevents the display of the dialog box for each new connection to a server. V1.0d - 1. Added the MyIP property. This property returns the local host's ip number as an unsigned long integer. 2. Modified the Send property to test for buffer availability prior to sending a message. This prevents WOULDBLOCK errors. 3. Changed error routines to leave the socket open when a WOULDBLOCK error occurs. Prior versions close the session when this error is encountered. V1.0c - 1. Added support for Visual Basic format strings. Binary zeroes may now be passed via winsock.Send and winsock.Recv for VB versions 2.0 and higher. VB 1.0 and VC++ remain restricted to the use of zero terminated strings. V1.0b - 1. Fixed a problem with name resolution. 2. Added (undocumented) function winsock.SendZero. This is an integer field that sends n number of binary zeroes when assigned a value. Example: "winsock1.SendZero = 5" will send 5 binary zeroes to the remote host. V1.0a - Initial release