                    - TCP/IP Newsletter for Developers -



   Dart Communications, 61 Albany Street, Cazenovia, New York 13035-0618



          Tel: 315-655-1024 Fax: 315-655-1025 Email: info@dart.com



                Forward Technical Input to dartnews@dart.com



ISSUE 4 1 December 1995

                             Table of Contents

1. Introduction and Breaking News!

2. The Windows Socket Interface and PowerTCP, and Overview of TCP

3. Mailing Lists

4. Internet Sites

5. Protocol RFC References and Recent RFCs

6. MS Files for November 1995 and the /developr/ subdirectories

7. Reciprocal Links

8. New Product Information

9. Current Product List



---------------------------------------------------------------------------



1. INTRODUCTION: Purpose: New product announcements and updated product

information for developers, technical editors, writers, and programming

user groups. To provide developers with a feedback line to input

suggestions for future enhancements of current products, ideas for future

products needed by the development tools community, and a platform for

discussions on the TCP/IP protocols.



HOW TO SUBSCRIBE: email to dartnews@dart.com, in message body type

"subscribe". Subscriber Input: email to dartnews@dart .com.



BACK ISSUES: available via FTP at users.aol.com/gregsutton main directory

(filenames dartnew1.txt...or tcpnews4.txt, etc). In the near future copies

will be maintained at www.dart.com.



DOWNLOADING DEMO VERSIONS: PowerTCP (powertcp.zip), PowerVT (powervt.zip)

and PowerTCP for Delphi (delphtcp.zip) are available via FTP at

www.dart.com in the pub directory or visit the site at Dart Communications



Note: A PowerTCP Toolkit for PowerBuilder Demo will soon be available!



TWO POWERPOINT TUTORIALS were presented by Dart Communications President

Michael Baldwin at the Fall Internet World 95 on October 30th and 31st.

PowerPoint is needed to view these files located at www.dart.com on the

What's New Page or via FTP in the /pr/dir, 2 files with .ppt extensions.

Tutorials are on C++ Techniques for Building Communications Protocol

Libraries and Windows Sockets Specification.



---------------------------------------------------------------------------

BREAKING NEWS! - PowerTCP Distribution Going On-Line!



Effective this December, Dart will start maintaining the best-selling

PowerTCP Standard Toolkit for Visual Basic on it's web server and in it's

new Compuserve section (just GO DART). (The Compuserve section is under

construction as this is being written). This is very exciting news for

potential developers, since once the distribution is downloaded, a trial

key is all that's needed to try out the kit for 1 month at no cost! When

ready to buy, the user can get a Toolkit shipped by simply calling Dart's

sales office. Now, it's not only easy to write TCP/IP apps, it's even

easier to get the Toolkit to do so!



This is even better news for current PowerTCP owners. Existing End-User

licenses remain valid, so you can update your toolkit at any time for no

upgrade fee! (OEM licensors should contact Dart for updated licenses if

they choose to update their kit.)



Michael Baldwin

President

Dart Communications

---------------------------------------------------------------------------



2. THE WINDOWS SOCKET INTERFACE AND POWERTCP, AND OVERVIEW OF TCP



Extracted from the PowerTCP Demo Help File.



PowerTCP libraries lie between your application and the Windows Sockets

interface (WINSOCK.DLL and/or WSOCK32.DLL). The computer supplies the

hardware (Physical Layer) necessary to make data communications work.

Typically, this is an RS-232 port or a network interface card (ethernet,

token-ring, etc.), and often includes the Data Link Layer (media access

control or MAC and logical link control or LLC found on most network

interface cards). Interfacing to the Data Link Layer is the Network Layer

where the IP (Internet Protocol) communication processing takes place. This

interface can be implemented using de-facto standards like the Network

Device Interface Standard (NDIS) or Open Data-link Interface (ODI).



TCP and UDP protocol processing is usually considered as operating within

the Transport Layer, and is normally implemented by the same vendor that

provides the IP processing. Consequently, there is no standard interface

between the Network and Transport Layers when it comes to TCP/IP.



A standard interface is necessary, however, between the Application Layer

where the Upper-Layer Protocol (TELNET, FTP, SMTP, TFTP, etc.) is

implemented and the Transport Layer that is provided by the TCP/IP vendor.

This enables third-party developers to write TCP/IP applications.

Currently, under UNIX and Windows, vendors provide static libraries (the

"socket library") that allow application developers to utilize TCP/IP

services. Recently, however, the advent of dynamically-linked libraries

under Windows enabled the industry to standardize on a Windows socket

library standard, which is now in effect, and is called the "Windows

Sockets" interface (version 1.1 is current as of this writing). This

standard allows our libraries to run on many TCP/IP transports, greatly

increasing the market for TCP/IP applications written for Windows.



All PowerTCP products interface to the Windows Sockets interface, and rely

on it for operation. PowerTCP adds value to the Windows Sockets interface

by encapsulating all library calls in an optimized fashion.



TCP is built upon the IP protocol. The IP protocol provides an unreliable

transfer of data. Because TCP uses IP to transmit data, TCP must use

methods to make it reliable. TCP provides the following features to provide

a reliable flow of data:



When one end of a TCP connection receives data, it sends a message back to

the other end, acknowledging that it received it. If one end of a

connection does not receive a confirmation after it sends data, it will

re-send the data until it receives a confirmation or times out.



TCP keeps checksums on data sent. If the checksum on received data does not

match the data sent, it will discard the data and not acknowledge having

received the data. The other end will then re-send the data because it will

not have received an acknowledgment. Both ends of a TCP connection contain

buffers to store data before it is used by the application. TCP makes sure

that neither buffer will overflow. This is known as flow control. Data sent

to TCP may be split up or combined into segments of data which TCP

considers the optimum size. Bytes sent from one end of a TCP connection

will arrive at the other end in the same order, but not necessarily in the

same size segments as which they were sent.



Because TCP is built upon the unreliable IP, TCP ensures that bytes arrive

in the correct order and are not duplicated, changing the order of received

data and deleting duplicate data if necessary. TCP is a stream-oriented

protocol. This means that the flow of data in TCP is without any

predictable breaks in the data. It is up to an application to define

meaningful record blocking. TCP provides simultaneous two-way (full-duplex)

data transfer. This means that data can flow from both ends of a connection

at the same time.



TCP is a connection-oriented protocol. This means that a connection must be

established between two computers before they can exchange data. The way

this works is:



1. A client computer sends a message to a server saying, "I want to

connect."



2. The server responds, acknowledging the message to connect.



3. The client then sends a second message to the server acknowledging the

server's message.



These three steps make the connection. The server must have already been

listening for connections before the client could connect. The server made

a passive connection--this means it was listening for client computers

trying to connect. The client computer which initiated the connection

created an active connection. Closing a connection works in a similar way.

One end makes an active close--initiating a close. The other end then

performs a passive close.



PowerTCP takes advantage of all the features that make TCP reliable, so the

application does not have to be concerned about flow control, checksums, or

acknowledgments.



For developing client software that make active connections:



   * Connect to a remote computer with Action=CONNECTCOMM.

   * Send or process received data with Send and the Recv Event.

   * Close the connection with Action=CLOSECOMM.



For developing server software that listen for passive connections:



   * Listen for incoming connections with Action=LISTENCOMM.

   * When a computer tries to connect, respond to the Accept Event by

     creating a new control and assigning the new connection to the new

     control using the Session property.

   * This new session can send or process received data with Send and the

     Recv Event.

   * Close the new session with Action=CLOSECOMM.

   * Stop listening with Action=CLOSECOMM when it is time to terminate the

     server.



Each new session is a new custom control.



How a PowerTCP server accepts new connections



This method allows the server to dynamically create a new session for each

remote computer trying to connect. This allows each session to be entirely

independent from the listener. The listener can be subsequently shut down,

or it can be left open to continue to accept passive connections. The

number of passive connections generated is limited only by available memory

and any limits imposed by the TCP/IP kernel being used.



One of the reasons TCP/IP became so popular is because it has been

implement ed on many operating systems and hosts. This is called

heterogeneous operation, and is demonstrated whenever a PC is used to logon

to an IBM host using TELNET, and then uses FTP to send a file to a VAX

system half-way around the world.



3. MAILING LISTS RELATED TO PROGRAMMING OR TCP/IP



WINSOCK-L

     list-admin@papa.indstate.edu

     subscribe winsock-l (address)

VISBAS-L

     listserv@peach.ease.lsoft.com

     subscribe visbas-l (name)

POWERBUILDER

     listserv@starfire.ne.uiuc.edu

     subscribe powerbuilder (address)

VISUAL_DBASE

     listserv@borland.com

     subscribe visual_dbase

dBASE

     majordomo@iinet.com.au

     subscribe dBASE



4. INTERNET SITES:



PowerBuilder FAQ

http://www.cfw.com/~middletn/home.html



Delphi Super Page

http://sunsite.icm.edu.pl/~robert/delphi/



Delphi Hackers'

http://www.it.kth.se/~ao/DHC/



Michael's Delphi Collection

http://linux.rz.fh-hannover.de/~holthoefer/delphi.html



Carl & Gary's Visual Basic Homepage

http://www.apexsc.com/vb/



Grumpfish, Inc., Software and education for Borland Delphi and CA-Clipper

developers

http://www.teleport.com/~grump/



Dave Baldwin's Pascal, Delphi VCL Components and Utilities

http://www.empire.net/~dbaldwin/



Stardust Technologies

http://www.stardust.com



5. PROTOCOL RFC REFERENCES and RECENT RFCs:



IP - Internetworking Protocol: RFC 791, 919, 922, 950, 1122



UDP - User Datagram Protocol: RFC 768, 1122



ICMP - Internet Contol Message Protocol: RFC 792, 1122



IGMP - Internet Group Multicast Protocol: RFC 1112



SNMP - Simple Network Management Protocol: RFC 1098, 1157



DNS - Domain Name Service: RFC 1034, 1035, 1123



NTP - Network Time Protocol: RFC 1119



EMAIL - Electronic Mail: RFC 822



MIME - Multipurpose Internet Mail Extensions: RFC 1563, 1521, 1522



SMTP - Simple Mail Transfer Protocol: RFC 821, 822, 1425, 1506



POP3 - Post Office Protocol: RFC 1460



IMAP - Interactive Mail Access Protocol: RFC 1176



NNTP - Network News Transport Protocol: RFC 977



TELNET - RFC 854, 855, 1123



FTP - File Transfer Protocol: RFC 959



FINGER - RFC 1288



WHOIS - RFC 1288



FTP to ds.internic.net path:/rfc/ dir for files



RFC 1869, 1866, 1867, 1868



RFC 1869

=======================================================================

Network Working Group                               J. Klensin, WG Chair

Request For Comments: 1869                                           MCI

STD: 10                                                 N. Freed, Editor

Obsoletes: 1651                             Innosoft International, Inc.

Category: Standards Track                                        M. Rose

                                            Dover Beach Consulting, Inc.

                                                            E. Stefferud

                                     Network Management Associates, Inc.

                                                              D. Crocker

                                                  Brandenburg Consulting

                                                           November 1995

                        SMTP Service Extensions

Status of this Memo

   This document specifies an Internet standards track protocol for the

   Internet community, and requests discussion and suggestions for

   improvements.  Please refer to the current edition of the "Internet

   Official Protocol Standards" (STD 1) for the standardization state

   and status of this protocol.  Distribution of this memo is unlimited.

1.  Abstract

   This memo defines a framework for extending the SMTP service by

   defining a means whereby a server SMTP can inform a client SMTP as to

   the service extensions it supports.  Extensions to the SMTP service

   are registered with the IANA. This framework does not require

   modification of existing SMTP clients or servers unless the features

   of the service extensions are to be requested or provided.

RFC 1866

=======================================================================

Network Working Group                                    T. Berners-Lee

Request for Comments: 1866                                      MIT/W3C

Category: Standards Track                                   D. Connolly

                                                          November 1995

                    Hypertext Markup Language - 2.0

Status of this Memo

   This document specifies an Internet standards track protocol for the

   Internet community, and requests discussion and suggestions for

   improvements.  Please refer to the current edition of the "Internet

   Official Protocol Standards" (STD 1) for the standardization state

   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   The Hypertext Markup Language (HTML) is a simple markup language used

   to create hypertext documents that are platform independent. HTML

   documents are SGML documents with generic semantics that are

   appropriate for representing information from a wide range of

   domains. HTML markup can represent hypertext news, mail,

   documentation, and hypermedia; menus of options; database query

   results; simple structured documents with in-lined graphics; and

   hypertext views of existing bodies of information.

RFC 1867

=======================================================================

Network Working Group                                           E. Nebel

Request For Comments: 1867                                   L. Masinter

Category: Experimental                                 Xerox Corporation

                                                           November 1995



                     Form-based File Upload in HTML

Status of this Memo

   This memo defines an Experimental Protocol for the Internet

   community.  This memo does not specify an Internet standard of any

   kind.  Discussion and suggestions for improvement are requested.

   Distribution of this memo is unlimited.

1. Abstract

   Currently, HTML forms allow the producer of the form to request

   information from the user reading the form.  These forms have proven

   useful in a wide variety of applications in which input from the user

   is necessary.  However, this capability is limited because HTML forms

   don't provide a way to ask the user to submit files of data.  Service

   providers who need to get files from the user have had to implement

   custom user applications.  (Examples of these custom browsers have

   appeared on the www-talk mailing list.)  Since file-upload is a

   feature that will benefit many applications, this proposes an

   extension to HTML to allow information providers to express file

   upload requests uniformly, and a MIME compatible representation for

   file upload responses.  This also includes a description of a

   backward compatibility strategy that allows new servers to interact

   with the current HTML user agents.

   The proposal is independent of which version of HTML it becomes a

   part.

2.  HTML forms with file submission

   The current HTML specification defines eight possible values for the

   attribute TYPE of an INPUT element: CHECKBOX, HIDDEN, IMAGE,

   PASSWORD, RADIO, RESET, SUBMIT, TEXT.

   In addition, it defines the default ENCTYPE attribute of the FORM

   element using the POST METHOD to have the default value

   "application/x-www-form-urlencoded".

RFC 1868

=======================================================================

Network Working Group                                          G. Malkin

Request For Comments: 1868                                Xylogics, Inc.

Category: Experimental                                     November 1995



                         ARP Extension - UNARP

Status of this Memo

   This memo defines an Experimental Protocol for the Internet

   community.  This memo does not specify an Internet standard of any

   kind.  Discussion and suggestions for improvement are requested.

   Distribution of this memo is unlimited.

Abstract

   The Address Resolution Protocol allows an IP node to determine the

   hardware (datalink) address of a neighboring node on a broadcast

   network.  The protocol depends on timers to age away old ARP entries.

   This document specifies a trivial modification to the ARP mechanism,

   not the packet format, which allows a node to announce that it is

   leaving the network and that all other nodes should modify their ARP

   tables accordingly.



6. Selected MS Files for November 1995, ftp.microsoft.com/softlib/mslfiles/



For a complete listing download index.txt



11/13/95  S15628  WX1220.EXE   ODBC Drivers for Win95 Applications

11/13/95  S15629  PRODENH.EXE  Enhancement Guide for Developers

11/10/95  S15625  W95IR.EXE    Infrared Data Connectivity for Windows 95

11/09/95  S15623  ACCPORT.EXE  Porting 16-bit Applications to 32-bit

11/06/95  S15619  DMN0.EXE     DMN0.DLL for Visual C++ 2.0 on Windows 95

11/03/95  S14987  PW1118.EXE   Microsoft Win32s Upgrade -- Version 1.30A



files at ftp.microsoft.com/developr/



Each subdirectory in the developr directory has a /kb/ dir where an

index.txt file is located with all the contents of that subdir.



Subdirectories include:

DEVELOPR                             Developer Tools and Information

                     BASIC           Quick Basic & other Basics

                     DEVCAST         DevCast information

                     DEVUTIL         MS Test, Delta, EXEMOD, EXEPACK,

                                     & LIB Utility

                     DRG             Developer Relations Group

                     FORTRAN         Fortran and Fortran PowerStation

                     FOX             FoxPro and FoxBase

                     GEN_INFO        General, non-product information

                     MAPI            Messaging API information

                     MASM            Macro Assembler

                     MSDN            Microsoft Developer Network

                     MSJ             Microsoft Systems Journal

                     OLE             OLE

                     RFC             Proposed Standards Documents

                     TAPI            Telephony API information

                     VB              Visual Basic for Windows

                     VISUAL_C        Visual C++, MFC, & other C products

                     WIN_DK          Windows SDK, DKs & At Work

                     WIN32DK         32 bit Development Kits



Here is a sample extract from the vb directory:



Q42980 (Complete) Tutorial to Understand IEEE Floating-Point Errors

Q69792 How to Trap VB Form Lost Focus with GetActiveWindow API

Q70220 How to Contribute Articles to the Microsoft Knowledge Base

Q71067 How to Set Tab Stops in a Visual Basic List Box

Q71068 How to Create Scrollable Viewports in Visual Basic

Q71101 Why Output Might Not Display from VB Form_Load Procedure

Q71102 How to Emulate QuickBasic's SOUND Statement in Visual Basic

Q71103 How to Flood Fill (Paint) in VB using ExtFloodFill Windows API

Q71104 How to Use Windows BitBlt Function in Visual Basic Application

Q71106 How to Pass One-Byte Parameters from VB to DLL Routines

Q71260 How to Send an HBITMAP to Windows API Function Calls from VB

Q71280 How to Create a Flashing Title Bar on a Visual Basic Form

Q71281 How to Implement a Bitmap Within a Visual Basic Menu

Q71488 How to Create Rubber-Band Lines/Boxes in Visual Basic



7. RECIPROCAL LINKS



Dart Communications is adding reciprocal links to its links.htm page for

Software Developers, Software Development Companies, Development Software

Venders, Programming Magazines, and Programmer User Groups. Send your link

info to sutton@dart.com.



Here is our link:



<a href="http://www.dart.com">Dart Communications</a> - PowerTCP Toolkits.

C/C++ Class Libraries (16/32-bit), DLLs (16/32-bit), OLE Controls OCXs, VB

Custom Controls, Delphi VCL Components, & PowerBuilder Compatible Level 1

VBXs<br>



or if you prefer -



<a href="http://www.dart.com">Dart Communications</a> - PowerTCP

Toolkits<br>



8. NEW PRODUCT INFORMATION



PowerTCP Standard Toolkit for PowerBuilder - Yes it includes VT220!



PT-103/104 will support both VB 2.0 and VB 3.0



PT-109/110 will support VB 4.0, Visual FoxPro, and Oracle for Objects



9. CURRENT PRODUCT LIST



Most Toolkits in the product listing were updated to new versions. For

information about quanity pricing and license pricing information contact

Allison Smith at 315-655-1024 or info@dart.com.



PowerTCP Toolkits quickly make any Windows application internet-aware.

Build TCP/IP applications in any development environment with PowerTCP.

OCXs, VBXs, DLLs and C++ class libraries provide a fast and easy way to add

TCP/IP protocols to your application.



TCP, TELNET, FTP, SMTP, POP3, UDP, TFTP and SNMP components provide

powerful capabilities you can immediately use. Comprehensive sample

applications with source included. VT-220 emulation support is provided!



PowerTCP encapsulates protocol processing and provides tested

interoperability with WINSOCK compliant stacks, saving development and

maintenance costs. End-User and OEM run-time licensing is available.

Toolkits start at $298. End-User $40 each. Call for OEM pricing.



PT-101 PowerTCP Standard Toolkit for C/C++/16 v 1.3 16-bit libraries for

TCP, TELNET, VT-220, FTP, SMTP, and POP3.



PT-102 PowerTCP Speciality Toolkit for C/C++/16 v 1.2 16-bit libraries for

UDP, SNMP, and TFTP.



PT-103 PowerTCP Standard Toolkit for VB v 1.3 VBX libraries for TCP,

TELNET, VT-220, FTP, SNMP, and POP3.



PT-104 PowerTCP Speciality Toolkit for VB v 1.2 VBX libraries for UDP, TFTP

and SNMP.



PT-105 PowerTCP Standard Toolkit for Delphi v 1.3 DLLs and Delphi

Components for TCP, TELNET, VT-220, FTP, SMTP, and POP3.



PT-106 PowerTCP Speciality Toolkit for Delphi v 1.2 DLLs and VCL Components

for UDP, TFTP, and SNMP.



PT-107 PowerTCP Standard Toolkit for C/C++/32 v 1.3 32-bit libraries for

TCP, TELNET, VT-220, FTP, SMTP, and POP3.



PT-108 PowerTCP Speciality Toolkit for C/C++/32 v 1.2 32-bit libraries for

UDP, SNMP, and TFTP.



PT-109 PowerTCP Standard Toolkit with OLE Controls v 1.3 OCX libraries for

TCP, TELNET, VT-220, FTP, SMTP, and POP3.



PT-110 PowerTCP Speciality Toolkit with OLE Controls v 1.2 OCX libraries

for UDP, TFTP, and SNMP.



PT-111 PowerTCP Standard Toolkit for Powerbuilder v 1.3 VBX libraries for

TCP, TELNET, VT-220, FTP, SMTP, and POP3.



PT-201 PowerVT Advanced Emulation Package for Windows



---------------------------------------------------------------------------



The next newsletter is scheduled for release on 1 January 1996.



Send newsletter input and subscriptions to dartnews@dart.com (Greg Sutton)



Send pricing and licensing questions to info@dart.com (Allison Smith) or

call 315-655-1024 during business hours: Monday thru Friday 8:30 am to 5:30

pm Eastern Standard Time (EST) which is Greenwich Mean Time (GMT) minus

FIVE hours.



NEXT MONTH! An overview of FTP - File Transfer Protocol.



Thank You



Greg Sutton



END FILE

---------------------------------------------------------------------------



[Up One Level]Return to previous page.

---------------------------------------------------------------------------

