Windows NT管道编程全解析
1. 16位Windows套接字应用程序指南
在16位Windows环境下进行套接字编程时,有一些重要的指导原则可以遵循,这些原则有助于提升应用程序的性能和稳定性。
首先,除非必要,Windows应用程序应尽量避免使用阻塞套接字调用,如connect()、send()或recv()。应尽可能使用Windows Socket异步接口,像WSAAsyncSelect()。此外,应用程序还可以通过ioctlsocket()API将套接字设置为非阻塞模式,或者使用select()API来确定套接字的状态。
当在套接字上进行阻塞调用时,Windows Socket实现会提供默认的Windows消息处理功能,这能确保系统在运行时不会挂起。不过,应用程序设计者可以考虑使用WSASetBlockingHook()函数提供自己的消息处理功能,这样可以为用户呈现一个响应式的图形用户界面(GUI),还能提供一个对话框来取消可能耗时较长的网络调用。
应用程序在进行异步套接字I/O调用(如WSAAsyncGetHostByName()API)时,应该锁定相关的内存缓冲区和结构,以防止数据在传输过程中被意外修改。
虽然基于Windows Socket的服务器可以在Windows 3.x工作站上运行,但对于关键任务的客户端/服务器系统,建议将服务器托管在更强大、稳定的