<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Writing_Network_Capable_Software</title><link>https://sourceforge.net/p/drivewireserver/wiki/Writing_Network_Capable_Software/</link><description>Recent changes to Writing_Network_Capable_Software</description><atom:link href="https://sourceforge.net/p/drivewireserver/wiki/Writing_Network_Capable_Software/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 20 Jun 2014 18:50:17 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/drivewireserver/wiki/Writing_Network_Capable_Software/feed" rel="self" type="application/rss+xml"/><item><title>Writing_Network_Capable_Software modified by Boisy Pitre</title><link>https://sourceforge.net/p/drivewireserver/wiki/Writing_Network_Capable_Software/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -24,7 +24,7 @@

 If you are writing a network application that will act as a host (or server), then you need to inform the DriveWire server of your intent by calling the TCPListen routine. 

-### Acting Like a Client
+### Acting like a Client

 As a client, your application is interested in connecting to a host on the other end. To do this, call TCPConnectToHost. 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Boisy Pitre</dc:creator><pubDate>Fri, 20 Jun 2014 18:50:17 -0000</pubDate><guid>https://sourceforge.netebf90472224a0fbe5c956ac9192b8daa52deb2fe</guid></item><item><title>Writing_Network_Capable_Software modified by Boisy Pitre</title><link>https://sourceforge.net/p/drivewireserver/wiki/Writing_Network_Capable_Software/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -24,7 +24,7 @@

 If you are writing a network application that will act as a host (or server), then you need to inform the DriveWire server of your intent by calling the TCPListen routine. 

-### Acting a Client
+### Acting Like a Client

 As a client, your application is interested in connecting to a host on the other end. To do this, call TCPConnectToHost. 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Boisy Pitre</dc:creator><pubDate>Fri, 20 Jun 2014 18:50:17 -0000</pubDate><guid>https://sourceforge.netddc35e07a9b4a08533ed64336242c5a2f0f06f03</guid></item><item><title>Writing_Network_Capable_Software modified by Boisy Pitre</title><link>https://sourceforge.net/p/drivewireserver/wiki/Writing_Network_Capable_Software/</link><description>&lt;div class="markdown_content"&gt;&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#introduction"&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#using-the-network-library"&gt;Using the Network Library&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#getting-a-path"&gt;Getting a Path&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#setting-up-the-path"&gt;Setting up the Path&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#acting-like-a-host-listening"&gt;Acting like a Host (Listening)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#acting-a-client"&gt;Acting a Client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#example-applications"&gt;Example Applications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;DriveWire's approach to networking is to let the server do the "heavy lifting" of the TCP/IP stack and shift the burden away from the CoCo. This lets software developers enjoy the convenience of sending simple commands to initiate an outgoing connection or listening for an incoming one. If you compare getting a network application up and running under NitrOS-9 and DriveWire vis a vis other operating systems, you will quickly see that it is much easier on your CoCo using this method. &lt;/p&gt;
&lt;p&gt;The steps for obtaining and using a netork resource under NitrOS-9 consists of these basic steps: &lt;/p&gt;
&lt;p&gt;Obtain a path to a network device Set up the port by sending appropriate messages to the server on the path Perform subsequent reading and writing to the path to pass data&lt;/p&gt;
&lt;h2 id="using-the-network-library"&gt;Using the Network Library&lt;/h2&gt;
&lt;p&gt;For convenience, a network library has been written to provide application writers with some common routines for network access. The library is written in assembly language and requires developers to use the RMA assembler and RLINK linker when writing their applications. &lt;/p&gt;
&lt;h3 id="getting-a-path"&gt;Getting a Path&lt;/h3&gt;
&lt;p&gt;To obtain a path to the network, your program needs to call the TCPOpen routine. The path number of the network path is returned in register A. &lt;/p&gt;
&lt;h3 id="setting-up-the-path"&gt;Setting up the Path&lt;/h3&gt;
&lt;p&gt;Depending on whether your application is a client or server, you will want to call one of the following routines: &amp;lt;p&amp;gt; TCPConnectToHost &amp;lt;p&amp;gt; TCPListen &lt;/p&gt;
&lt;h3 id="acting-like-a-host-listening"&gt;Acting like a Host (Listening)&lt;/h3&gt;
&lt;p&gt;If you are writing a network application that will act as a host (or server), then you need to inform the DriveWire server of your intent by calling the TCPListen routine. &lt;/p&gt;
&lt;h3 id="acting-a-client"&gt;Acting a Client&lt;/h3&gt;
&lt;p&gt;As a client, your application is interested in connecting to a host on the other end. To do this, call TCPConnectToHost. &lt;/p&gt;
&lt;h2 id="example-applications"&gt;Example Applications&lt;/h2&gt;
&lt;p&gt;The best way to learn is to look at existing code. For an example of writing a host application, see the &lt;a class="" href="http://nitros9.cvs.sourceforge.net/viewvc/nitros9/nitros9/3rdparty/packages/drivewire/inetd.a?view=markup"&gt;inetd.a&lt;/a&gt; source code. For a client application, see the &lt;a class="" href="http://nitros9.cvs.sourceforge.net/viewvc/nitros9/nitros9/3rdparty/packages/drivewire/telnet.a?view=markup"&gt;telnet.a&lt;/a&gt; source file. &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Boisy Pitre</dc:creator><pubDate>Fri, 20 Jun 2014 18:50:17 -0000</pubDate><guid>https://sourceforge.net0994f03f58fd3d0e2c354071141831cffefe36ba</guid></item></channel></rss>