|
I'm doing some cross platform socket communications between
MacPerl and VMSPerl. Briefly, I run a script on the mac that sends an
REXEC command to the VMS system. The VMS command file check for the server
process which run a perl server using socket.pm and select.pm. If the
server is non-existent, then the REXEC command runs a detached process to create
it. I have to setup a delay to give the server time to startup.
After that all is well. The two systems talk back and forth using "accept"
and "recv" methods.
If the server is already running the command process skips to
the perl socket interface. If not, it startups the server, then
proceeds.
One trouble I'm having is related to the port timeout
period. If I have the client close its connection, then a new connection
is no problem because the server is still running. However, if the client
shuts down the server, then attempts to start it up right away, I get a
error:
"Could not establish server: IO::Socket:INET: address already
in use"
Obviously, the socket hasn't timed out. However, I don't
know where I can set that timeout period. Is that a setting in my TCP/IP
Services interface on the VMS side or is it related to the
select->can_read(timeout) in the server script?
In general, how can a view stats on the server port (in this
case 2323)? I've tried
TCPIP> show service
and
TCPIP> show device_socket/port=2323
to no avail. Any suggestions would be appreciated, as I
have a nifty little communications routine with only minor
problems.
Sincerely,
Donald G Plugge
PS By the way, the MacPerl interface into the Mac GUI is
really impressive. The MacWindow and MacDialog make a nice interface into
the VMS server (which has no real satisfactory GUI packages built-in). But
using the VMS as a server, a GUI is really unnecessary.
|
- Re: Socket timeout Donald Plugge \(Personal\)
- Re: Socket timeout Craig A. Berry
