I haven't seen your post until now, it's too far back in the line.

numnum (numnum)
I guess your problem is caused by the system call to make the socket non-blocking. I never did TCP/IP coding on WIndows system, so this is just my rough evaluation of the problem based on my previous experience.

Usually , when you need an event driven architecture, you have to make your socket non-blocking because the connect() call is a blocking one, which can prevent the system from doing other things while waiting. On unix , we use fcntl() to change the nature of the socket into a non-blocking one, and on vxWorks, we use ioctl(). I assume you use ioctl() on windows to do the same thing. This ioctl() is a system call, and it has different semantics on different platforms, I guess WinNT and 98 have
some subtle difference on this function. As a result, when you move your source code from 98 to winNt, something is broken. Give me some fragments of your code, I can take a look at it for you. It's really hard to discussion programming bugs without source code.

2001-4-24 -04:00

回到话题: Emergency! Win98 and WinNT

回到论坛: HOME枫下论坛枫下论坛主坛工作学习IT技术讨论