Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!ucsd!ucbvax!ORCAD2.dnet.ge.com!THIER From: THIER@ORCAD2.dnet.ge.com Newsgroups: comp.protocols.tcp-ip Subject: Determining Socket Status Message-ID: <9011062135.AA01288@ge-dab.GE.COM> Date: 6 Nov 90 21:35:47 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 26 I am implementing a UDP/TCP/IP communication software package for a small network of SPARCStation 1+'s running 4.1 and Motorola MVME147 boards running VADSWorks. Message receive tasks are to be kicked off using the asynchronous I/O mechanism. My approach is to utilize SIGIO to alert the receive processing to socket activity, and then use SELECT and the associated mask manipulation macros to identify the active sockets. What I haven't figured out is how to determine the cause of a given SIGIO. Sun documentation states that the signal is posted upon state changes to the socket. Fair enough, but how does one go about determining which change (e.g, connection establishment/disestablishment, data available in receive queue, etc.) has occurred? SELECT, I assume, flags data availability, but a look at the socket state #defines (SS_NODREF, etc.) tells me that I need more than that to safely multiplex sockets. Is there a socket (or file) status call that I'm missing? Thanks in advance. John Thier GE DSD Pittsfield MA thier@orcad2.dnet.ge.com