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