92 lines
3.6 KiB
Plaintext
92 lines
3.6 KiB
Plaintext
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
PARTICULAR PURPOSE.
|
|
|
|
Copyright (C) 1999 Microsoft Corporation. All Rights Reserved.
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
This application demonstrates a very simple-minded Winsock application
|
|
that uses the native ATM Winsock 2 service provider. The specific
|
|
ATM protocol addressing demonstrated by this application is AAL5. This
|
|
application makes no attempt to do anything useful per se, but concentrates
|
|
how setting up a connection using AAL5 and sending some data. Additionally,
|
|
this application demonstrates several Winsock2-specific APIs and techniques
|
|
that are useful whether or not your main interest is ATM or not.
|
|
|
|
Commandline parameters determine whether this application functions as
|
|
either a sender (-n), a receiver (-i), or simply allows ATM interfaces to
|
|
be enumerated. When specifying the ATM interface to bind to (on the receiver)
|
|
or the remote ATM interface to connect to on the sender the interface
|
|
is a 40 character NSAP address, with the last 2 hex digits (0 - 255 decimal)
|
|
representing the port. The commandline switch (-a) can be used to enumerate
|
|
all ATM interface on the local machine - note the last 2 digits will be 00.
|
|
|
|
Use the -? commandline switch to determine available options.
|
|
|
|
This application simply sends a buffer of data when acting as the sender,
|
|
to an instance of itself acting as a receiver. Any number of senders (up
|
|
to MAXCLIENTS) can be started to interact with one instance of a receiver.
|
|
The size of the data buffer (-b), its contents (-d), and the number of
|
|
times to send (-l) this buffer are controllable via commandline switches.
|
|
A repeat value of 0 implies continuous sending. A delay
|
|
commandline switch (-s:#), measured in milliseconds can be specified for the
|
|
sender to insure the total transfer spans a measured unit of time. Additionally,
|
|
the commandline switch (-c:#) is available to delay closing the connection,
|
|
measured in milliseconds, to allow the receiver time to pick up the data. This
|
|
is important because neither AAL5 nor this application has any handshake
|
|
mechanism to determine when the receiver has received all the data - AAL5
|
|
does not support a graceful connection closure.
|
|
|
|
|
|
|
|
APIs of Interest:
|
|
WSAEnumProtocols
|
|
WSASocket
|
|
WSAConnect
|
|
WSAAccept
|
|
WSAEventSelect
|
|
WSAWaitForMultipleEvents
|
|
WSASend
|
|
WSAAddressToString
|
|
WSAStringToAddress
|
|
|
|
|
|
|
|
Build:
|
|
|
|
This sample uses the following .cpp and .h files contained in this directory.
|
|
|
|
atmevent.h
|
|
atmevent.cpp
|
|
receiver.cpp
|
|
sender.cpp
|
|
enumerator.cpp
|
|
|
|
|
|
To compile/link this sample type nmake and use the supplied makefile or
|
|
build a project with VC++. Please remember to use the headers and libs from
|
|
the May 1999 Platform SDK later and link with ws2_32.lib. This application
|
|
was only tested on the Beta 3 release of Windows 2000.
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
This application is targeted to run on either NT5 Beta 3 (or later) and an
|
|
upcoming release of Windows 98 with ATM support. It is not targeted to run on
|
|
NT4 or Windows 95.
|
|
|
|
Usage:
|
|
Enumerate ATM interfaces
|
|
atmevent -a
|
|
Act as a sender and send buffer 10 times
|
|
and wait 2 seconds before closing the connection
|
|
atmevent -n:receiver_atm_interface -l:10 -c:2000
|
|
Act as a receiver
|
|
atmevent -i:local_atm_interface
|
|
|