我将要用C++开发一些与套接字相关的东西,并希望该软件从一开始就尽可能在Windows和Linux之间移植(使它在以后移植变得很棘手。)
我看过不同的库,alhem.net有一个C++库,当然还有boost::asio。 boost::asio看起来非常有前途,但是对于如此小的应用程序将有很大的依赖性。
自己写东西还是值得吗?还是应该只使用一个库?如果我自己做的话,主要的陷阱是什么?
最佳答案
Winsocks与Posix套接字不太兼容:
SOCKET
。在Posix上,它只是一个文件描述符(int
),您可以在其上执行常规的read()
和write()
调用。 recv()
和send()
的某些选项。 shutdown()
或close()
关闭Windows套接字。就像closesocket()
一样。 必须有更多的差异,但这就是我现在记得的。如果要使用Winsocks进行移植,则将有一个小的库,用于关闭套接字,打印错误消息等。
我可能会亲自使用
boost::asio
(尽管我从未使用过)。关于c++ - Winsock 2的可移植性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/829625/