加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Winsock 2便携性

发布时间:2020-12-16 07:53:03 所属栏目:百科 来源:网络整理
导读:我即将在C中开发一些与套接字相关的东西,并且希望软件从一开始就尽可能在 Windows和 Linux之间移植(以后便携它很棘手.) 我看过不同的库,有一个来自alhem.net的C,当然还有boost :: asio. boost :: asio看起来非常有前景,但对于这么小的应用程序来说是一个非常
我即将在C中开发一些与套接字相关的东西,并且希望软件从一开始就尽可能在 Windows和 Linux之间移植(以后便携它很棘手.)

我看过不同的库,有一个来自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一起去个人(我从来没有使用它).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读