by Dale Larson
When you run a wire between two or more computers, you have a network.
Big Deal. When your applications use that wire however, you have a
revolution. Although some of the following software is only internal or
experimental, these are things I can do now with my Amiga, with software
that I have now:
* From my Amiga, I can transparently access filesystems on Suns,
on the local Vax system (cbmvax), and on other Amigas.
* Whenever I print, I send my files to a network printer.
* I continuously receive mail on my Amiga--from as far as
Seattle, Sydney and Denmark, and near as a desk next to mine.
* Every night when I go home, my Amigas at work (and several
others) are used to do distributed graphics rendering. The
process is started over the network and all data is sent over
the network. A picture that would have taken a week can be
finished overnight.
In the scheme of what is possible, this is only the tip of the iceberg.
* In a high school environment, a network could allow students
to interactively participate in computer simulations. It could
allow them to collaborate electronically. It could allow
teachers to electronically monitor and assist students. It
could save schools money because peripherals such as printers,
hard-drives and CD-ROMs could be easily shared. Even the
computational power of one expensive machine could be shared by
the students.
* A small office can use a network for an email-like facility
for phone messages and other notes. Another application might
replace the intercom. Form letters can be kept in a central
database accessed by a word processor. A distributed
appointment calendar could allow a secretary to add a new
appointment even as the boss is looking at what his afternoon
schedule is. A distributed database application would allow
access to such things as a central client database, outstanding
orders and the present inventory.
* Imagine multi-player games that use the computational power of
each machine connected by a high speed Local Area Network (LAN).
* In a software development environment, several programmers can
work on the same project, updating the same sources. Debugging
information could be sent over the network, or a debugger on one
machine could control the programs on others (For example, there
is a version of Wack that runs over a network).
* Multimedia applications might do any number of exciting things
with the network. A few of the applications which have been
experimented with on other machines are: real-time audio and
video conferencing, interactive demos for groups, and shared
electronic blackboards.
In much the same way as all applications are candidates for a GUI
interface, all applications are candidates for becoming network
applications. The GUI has only changed the ways in which people interact
with their computers. Networks will change the ways in which people
interact with each other.
This article introduces some of the principles of writing network programs
using the AS225's Berkeley Socket interface. Even more so than in most of
software development, networking seems simple in theory, but, in reality,
gets complicated in a hurry. To develop network software for AS225, you
will need to obtain the Network Developer's kit from CATS. It has all the
necessary include files and Autodocs to develop for the AS225's
socket.library. Also, you should plan read at least some of the material
in the "References" section of this article.
Protocol Layers and the Berkeley Sockets Interface
Network Applications
Application Protocols
Kinds of Servers
Addresses
Finding Servers
Reserved Ports
Skeleton for Applications Using TCP (connection-based)
Skeleton for Applications Using UDP (connectionless)
Which Protocol Is Right For My Application?
The Shared Socket Library
References