[fa.info-vax] Did this get through?

info-vax@ucbvax.ARPA (10/19/84)

From: Aram Boornazian <ABOORNAZIAN@BBNV1>

From:	MAILER         19-OCT-1984 16:06  
To:	ABOORNAZIAN
Subj:	[Netmail From: ABOORNAZIAN@BBNV1] 

Return-Path: <>
Received: from BBNG.ARPA by BBNV1.ARPA; 19 Oct 84 16:06:22 EST
Received: from unknown host (for SRI-KL) by BBNG.ARPA; Fri 19 Oct 84 16:06:08-EDT
Received: from BBNV1.ARPA by SRI-KL.ARPA with TCP; Fri 19 Oct 84 13:00:33-PDT
Date: 19 Oct 1984 1555-EST
From: Aram Boornazian <ABOORNAZIAN at BBNV1>
To: <TAPPAN@BBN>
Reply-To: <ABOORNAZIAN@BBNV1>

From:	MAILER         18-OCT-1984 03:42  
To:	ABOORNAZIAN
Subj:	[Netmail From: KASHTAN@SRI-IU] Re: IP/TCP without EUNICE

Return-Path: <>
Received: from BBNG.ARPA by BBNV1.ARPA; 18 Oct 84 03:42:27 EST
Received: from unknown host (for SRI-KL) by BBNG.ARPA; Thu 18 Oct 84 03:42:27-EDT
Received: from SRI-IU.ARPA by SRI-KL.ARPA with TCP; Thu 18 Oct 84 00:35:48-PDT
Date: Wed 17 Oct 84 23:53:31-PST
From: David L. Kashtan <KASHTAN@SRI-IU>
Subject: Re: IP/TCP without EUNICE
To: MARANTZ@RUTGERS.ARPA
Cc: info-vax@SRI-KL.ARPA
In-Reply-To: Message from "Roy <MARANTZ@RUTGERS.ARPA>" of 17 Oct 84 17:5info-vax

As the person who originaly wrote the network code, I have been asked by
several people who do not have EUNICE but would like to access the network
from VMS how to do so.  The following is a very simple MACRO program that
does just that -- it should provide basically what you need to write programs
to connect to servers on other machines.  To create your own server, look in
the file ETC:SERVERS.DAT and see how a server like SMTP is described.  Just
add a new entry for your server (you should only have to change the service
name, the TCP port number and the program to run).  When the master server
process starts your program as a server the network connection will be on
SYS$INPUT:.  You just have to $ASSIGN it and then do READVBLK/WRITEVBLK
$QIOs to read/write the network.  Joe Sventek at LBL (j@lbl-csam) has
written a much more detailed document describing how to access the network
from FORTRAN.  Hope this helps you,
David
P.S.  I have got, written in "C" (and a bit of MACRO), a VMS printer
	SYMBIONT that does network spooling and a fake device driver
	to use as the network line printer.  What this does, is make
	it look like there is a local line printer -- but then all the
	data queued to the printer (or created as a SPOOL file by using
	this fake printer device) is spooled over the net to a particular
	printer server.  There are probably still a few bugs left in it,
	but it should make a good start towards what you want.
-----

	.LIBRARY	/SYS$LIBRARY:STARLET/
	$IODEF

;
;	Define network I/O function codes
;
IO$_SOCKET	= IO$_ACCESS ! <0 @ IO$S_FCODE>	;Create a socket
IO$_CONNECT	= IO$_ACCESS ! <4 @ IO$S_FCODE>	;Connect to foreign host


;
;	Define network access constants
;
AF_INET		= 2				;INTERNET socket (stream=TCP)
SOCK_STREAM	= 1				;Stream socket (TCP)

;
;	Test program to connect to given port on given host
;
dev:	.ascid	/INET0:/
chan:	.blkw	1
iosb:	.blkw	4
buf:	.blkb	100
; Socket structure -- used to describe the foreign host/port we
; will connect to
socket:	.word	AF_INET			;Protocol (TCP)
port:	.word	23			;Port # (e.g. telnet = 23)
address:.byte	10,5,0,2		;Host address (sri-iu = 10.5.0.2)
	.long	0,0			;unused

	.entry	test,^m<>
;
;	Assign a new internet device
;
	$assign_s	devnam=dev,chan=chan
	blbc	r0,exit
;
;	Create a TCP socket
;
	$qiow_s		func = #IO$_SOCKET, iosb=iosb, chan = chan,-
				p1 = @#AF_INET, -	;silly qio macro
				p2=#SOCK_STREAM		;   expects p1 address
	blbc	r0,exit
	blbc	iosb,exit
;
;	Flip the port bytes to network order
;
	movb	port,r0
	movb	port+1,port
	movb	r0,port+1
;
;	Connect to remote host
;
	$qiow_s		func = #IO$_CONNECT, chan = chan, iosb=iosb,-
				p1 = socket, p2 = #16	; p2 = size of socket
	blbc	r0,exit
	blbc	iosb,exit
;
;	Now you can IO$_READVBLK/IO$_WRITEVBLK to read/write to the
;	network.
;
	$qiow_s		func = #IO$_READVBLK, chan = chan, iosb=iosb,-
				p1 = buf, p2=#100
	blbc	r0,exit
	blbc	iosb,exit
;
;	When done, deassign the channel and you are all finished
;
	$dassgn_s	chan = chan

exit:	ret
	.end	test

-------
------
------

info-vax@ucbvax.ARPA (10/23/84)

From: decvax!seismo!uwvax!uwmacc!dorl@BERKELEY (Michael Dorl)

What is vaitalink?  Who makes it?  Phone # o address please.