我有一个使用Winsock进行网络连接的程序,我们现在的一个要求就是将程序移植到Linux上.阻止我们这样做的唯一因素是Winsock.
我的问题是:我可以轻松地将其移植到Linux实现中吗?
是否有任何陷阱我应该注意,如果我只是包含适当的头文件,我必须要处理什么样的事情?
谢谢你的帮助!
我发布了代码,但由于法律原因,我不能不幸.
但是,我们的代码确实使用了以下内容:
WSAStartup(..)
WSACleanup(..)
Socket(..)
sendto(..)
recvfrom(..)
ioctlsocket(..)
setsocketopt(..)
最佳答案
这取决于您是否使用任何特定于Windows的网络功能,或者您只是主要使用大多数与BSD兼容的API.
因此,如果您使用重叠的I / O和I / O完成端口以及Winsock API的其他高级部分,那么移植将非常困难,如果您只是使用BSD兼容的东西,那么应该很容易写一个薄的翻译层,甚至只是在Windows特定的ifdef中有winsock启动和关闭的东西……
这可能会有所帮助:http://tangentsoft.net/wskfaq/articles/bsd-compatibility.html