|
>First I want to thank everyone for their support. I have my socket client
>working, with one minor glitch. It will wait forever for a response from
>the socket server. I want to timeout after xx seconds. the send and
>receiver timer options are not supported. Once I have connected to the
>server, how does one timeout if the server does not respond to a request.
>My program just sits at TIMW. I am using an "AF_INET / SOCK_STREAM"
>connection. I am the client. If the server is hung, I want to close the
>connection and establish a new connection then resend the transaction. I
do
>not now how to control this timeout value. Any suggestions will be
>appreciated.
Chris,
While not an expert, I think you need to set the non-blocking flag. There's
a section in the OS/400 Sockets Programming manual about Non-blocking I/O
that talks about this. Here's some code that I've been tinkering. I
haven't been able to verify if it's correct yet though... The "hot" project
I was working on got cold!
* Set the I/O Blocking
*
D IOCtl PR 10I 0 EXTPROC('ioctl')
D 10I 0 VALUE
D 10U 0 VALUE
D * VALUE
*
* Fields for the IO Blocking Options process
*
D FIONBIO S 10U 0 INZ(131074)
D SockIO_Off S 10I 0 INZ(1)
D Sock_IOPOf S * INZ(%ADDR(SockIO_Off))
* Set the non block attribute
C Eval rc = IOCtl(sd: FIONBIO:
C Sock_IOPOf)
C If rc < 0
C CallP close(sd)
C Dump
C Eval *InLR=*On
C Return
C EndIf
do the read() or write()
Buck Calabro
Billing Concepts Albany, NY
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* This is the RPG/400 Discussion Mailing List! To submit a new *
* message, send your mail to "RPG400-L@midrange.com". To unsubscribe *
* from this list send email to MAJORDOMO@midrange.com and specify *
* 'unsubscribe RPG400-L' in the body of your message. Questions should *
* be directed to the list owner / operator: david@midrange.com *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.