c – Winsock 2便携性

前端之家收集整理的这篇文章主要介绍了c – Winsock 2便携性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我即将在C中开发一些与套接字相关的东西,并且希望软件从一开始就尽可能在 WindowsLinux之间移植(以后便携它很棘手.)

我看过不同的库,有一个来自alhem.net的C,当然还有boost :: asio. boost :: asio看起来非常有前景,但对于这么小的应用程序来说是一个非常大的依赖.

是否值得自己写这些东西或者我应该只使用图书馆?如果我自己做,那么主要的陷阱是什么?

解决方法

Winsocks与Posix插座不太兼容:

>在Winsocks中,套接字的类型为SOCKET.在Posix上,它只是一个文件描述符(int),您可以在其上执行正常的read()和write()调用.
>他们不会以同样的方式返回错误.
>他们不支持recv()和send()的一些选项.
>您必须使用两个特殊功能初始化和整合Winsocks库.
>我认为你不能用shutdown()或close()关闭Windows套接字.它就像closesocket().

必须有更多的差异,但这是我现在能记住的.如果您希望使用Winsocks进行移植,那么您将拥有一个用于关闭套接字,打印错误消息等的小型库.

我可能会和boost :: asio一起去个人(我从来没有使用它).

猜你在找的C&C++相关文章