From: Chris R. <chr...@me...> - 2001-08-01 17:30:40
|
Graham Barr <gb...@po...> wrote: > Thats interesting to note. > > However what is happening in this case is that select is stating it is > ready for reading, but the first sysread after that is returning zero. > > That normally means the server has closed the connection. But I find it > strange that it would do that without first responding to the bind > request. > > Graham. Hm, we have observed select behaving oddly on different versions of Windows here. The problem we had was that we were calling WSAEventSelect after we got a success from WSAWaitForMultipleEvents. On some versions of Winsock (like in '95, and NT with SP 4 or higher) this doesn't work because the event code is edge triggered, whereas previous SPs were edge triggered. In other words, the behaviour post SP4 was that 'I told you about the socket once, I won't tell you again.' So if sysread is checking for events itself, this might explain the problem. I wouldn't be at all surprised if things like Cygwin modified how perl's I/O worked. Could this therefore be a problem in the NT port of perl? Cheers, Chris |