将Socket应用程序从Unix向Windows移植中应注意的几点问题 |
山东省淄博市建设银行科技部 孙成山 |
套接字(socket)当今已成为最流行的网络通信应用程序接口。套接字最初是由加利福尼亚大学Berkeley分校为Unix操作系统开发的网络通信接口,后来它又被移植到DOS与Windows系统,特别是近几年来互联网络在全世界范围内被广泛普及并且增长迅猛,进一步奠定了它在网络通信程序开发领域的主宰地位。跨系统网络互联的呼声在我国也越来越高。近来,在开发的银行与证券联网系统中,我们尝试做了由Unix Sockets到Windows Sockets通信应用程序的移植,有所体会,望能将移植过程中应该注意的几点问题与热心于这方面工作的人们共同作以探讨,以期能起到抛砖引玉的作用。
在Windows Sockets网络程序设计中,尽管它允许阻塞操作,但是一个阻塞可能阻塞整个Windows环境,而在Unix Sockets程序中,套接字的默认操作模式却是阻塞的。Windows Sockets为了支持Windows消息驱动机制,对网络事件采用了基于消息的异步存取策略,较好的解决了阻塞问题。为此,建议最好将源程序中的阻塞调用改为基于消息的异步操作。 Windows Sockets为实现异步存取操作增设了如下的有关函数:
由Unix Sockets应用程序向Windows Sockets的移植是一件比较繁琐的工作,在移植中除了以上与Sockets具体实现直接相关的几点外,还应注意程序开发环境的的差异,这时程序上也应作一些相应的调整,例如,在Windows应用程序中有关的一些指针都应设为FAR类型等,这里就不再一一赘述。 |