2025-11-28 00:35:46 +09:00
..
new
2025-11-28 00:35:46 +09:00
new
2025-11-28 00:35:46 +09:00
new
2025-11-28 00:35:46 +09:00
new
2025-11-28 00:35:46 +09:00
new
2025-11-28 00:35:46 +09:00
new
2025-11-28 00:35:46 +09:00
new
2025-11-28 00:35:46 +09:00
new
2025-11-28 00:35:46 +09:00
new
2025-11-28 00:35:46 +09:00

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