Menu

ENOENT from non-blocking socket?

Help
2003-02-10
2003-02-11
  • David Monahan

    David Monahan - 2003-02-10

    On Solaris 8 I get ENOENT when doing a connect() or a read() on the non-blocking sockets. This only happens when the client and server are on separate machines. If I change the socket class to allow ENOENT the library works correctly.

    Any ideas?

    I have tried a web search but didn't find anything useful.

    Regards
    David

     
    • Chris Morley

      Chris Morley - 2003-02-11

      According to the documentation connect ought to be returning EINPROGRESS.

      I wonder if you are linking to the socket libraries properly. If you look at the connect man page for solaris, it says:

      EINPROGRESS
      The socket is non-blocking and the connection cannot be completed immediately. It is possible to select(3C) for completion by selecting the socket for writing. However, this is only possible if the socket STREAMS module is the topmost module on the protocol stack with a write service procedure. This will be the normal case.

      I suppose there could be a bug such that connect is returning ENOENT instead of EINPROGRESS. Or maybe the man page is just wrong. I will do some testing and see if I can reproduce it.

       

Log in to post a comment.