<<I am trying to implement NOWAITed I/O using NetIPC. I seem to have the choice of an immediate timeout and infinite time out. Anyone ever do this?? An example is worth a thousand words. Oh and I have to do this in COBOL as it is a COBOL shop.>> "Timeout" is N/A for NOWAIT I/O; the operation always returns immediately, and you use IODONTWAIT to see if the physical I/O has completed. I don't do COBOL, but translating the following should provide what you need. int RecvBlockNoWait(SOCKET Sock, char *buf, int maxlen, int recvflags) { int dlen = maxlen; short rlen = 0; int flags = recvflags; int res32 = 0; IPCCONTROL(Sock, 1,,,,,, &res32); /* enable NOWAIT */ if (res32) { printf("IPCCONTROL(1) error: %d\n", res32); fflush(stdout); errno_IPC = res32; return SOCKET_ERROR; } IPCRECV(Sock, buf, &dlen, &flags,, &res32); if (res32) { printf("Waited IPCRECV error: %d\n", res32); fflush(stdout); errno_IPC = res32; return SOCKET_ERROR; } dlen = 0; if (IODONTWAIT(Sock, buf, &rlen)) /* try to complete the receive */ { dlen = rlen; } IPCCONTROL(Sock, 258,,,,,, &res32); if (res32) { printf("IPCCONTROL(258) error: %d\n", res32); fflush(stdout); } IPCCONTROL(Sock, 2,,,,,, &res32); /* disable NOWAIT */ if (res32) { printf("IPCCONTROL(2) error: %d\n", res32); fflush(stdout); } return dlen; } Steve Steve Dirickson WestWin Consulting (360) 598-6111 [log in to unmask]