Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

vms tcp/ip server in C - arghhhh

0 views
Skip to first unread message

Shawna James

unread,
Aug 19, 2003, 2:35:07 AM8/19/03
to
I'm pulling my hair out getting a sensible tcp server going. I have
searched all over the web and found some
incomplete examples. I'd rather not use vfork, exec as i don't really want
a process per socket if i can avoid it.
I've seen reference to a method of sharing the socket, then passing the
device to another process to handle.
This seems good but I can't really make any headway. I don't have good
documentation unfortunately.

I'd kill for a working example or some complete code so if you know of
where i might find something...that would be a lifesaver.


TIA,

Shawna.

Oh, VAX VMS 7.1 and Multinet ?? I have both DECC and VAXC compilers
available.

Stanley F. Quayle

unread,
Aug 19, 2003, 10:29:50 AM8/19/03
to
On 19 Aug 2003 at 6:35, Shawna James wrote:
> I've seen reference to a method of sharing the socket, then passing the
> device to another process to handle.

You can call sys$getdvi and get the device name of the socket, then
pass that name off to the other process. You'll need the SHARE
privilege for the other process to open it.

> This seems good [...]

Actually, it's kind of ugly. And SHARE lets you share all sorts of
non-shareable things, so you might create a security hole...

> I don't have good documentation unfortunately.

Try http://h71000.www7.hp.com/doc/os731_index.html . It's the entire
VMS docset...

> I'd kill for a working example or some complete code so if you know of
> where i might find something...that would be a lifesaver.

You might look in SYS$EXAMPLES -- there might be something useful
there.

> Oh, VAX VMS 7.1 and Multinet ?? I have both DECC and VAXC compilers
> available.

I'd recommend DECC for any new development (and don't use the
/STANDARD=VAXC option). That will let you port someday to Alpha and
Itanium.

Multinet has a UCX (HP's stack) interface, so the OpenVMS
documentation should still be applicable...

--Stan Quayle
Quayle Consulting Inc.

----------
Stanley F. Quayle, P.E. N8SQ +1 614-868-1363 Fax: +1 614 868-1671
8572 North Spring Ct. NW, Pickerington, OH 43147
Preferred address: st...@stanq.com http://www.stanq.com


Bob Ceculski

unread,
Aug 19, 2003, 4:28:34 PM8/19/03
to
"Stanley F. Quayle" <st...@stanq.com> wrote in message news:<3F41FC1E.30682.276B4AF@localhost>...

> On 19 Aug 2003 at 6:35, Shawna James wrote:
> > I've seen reference to a method of sharing the socket, then passing the
> > device to another process to handle.
>
> You can call sys$getdvi and get the device name of the socket, then
> pass that name off to the other process. You'll need the SHARE
> privilege for the other process to open it.
>
> > This seems good [...]
>
> Actually, it's kind of ugly. And SHARE lets you share all sorts of
> non-shareable things, so you might create a security hole...
>
> > I don't have good documentation unfortunately.
>
> Try http://h71000.www7.hp.com/doc/os731_index.html . It's the entire
> VMS docset...
>
> > I'd kill for a working example or some complete code so if you know of
> > where i might find something...that would be a lifesaver.
>
> You might look in SYS$EXAMPLES -- there might be something useful
> there.
>
> > Oh, VAX VMS 7.1 and Multinet ?? I have both DECC and VAXC compilers
> > available.
>
> I'd recommend DECC for any new development (and don't use the
> /STANDARD=VAXC option). That will let you port someday to Alpha and
> Itanium.
>
> Multinet has a UCX (HP's stack) interface, so the OpenVMS
> documentation should still be applicable...

if you have support, just call Process software and they will
give you some examples and guidance on how to do this ...

Mark Berryman

unread,
Aug 19, 2003, 6:22:37 PM8/19/03
to
Stanley F. Quayle wrote:
> On 19 Aug 2003 at 6:35, Shawna James wrote:
>
>>I've seen reference to a method of sharing the socket, then passing the
>>device to another process to handle.
>
>
> You can call sys$getdvi and get the device name of the socket, then
> pass that name off to the other process. You'll need the SHARE
> privilege for the other process to open it.
>

Actually, Multinet provides a means for passing a socket to another
process without the need for privileges. See the Multinet programming
documentation for IO$_SETCHAR and the SETCHAR_HANDOFF flag.

Mark Berryman

0 new messages