社区
网络编程
帖子详情
Winsock和Posix的socket编程,主要区别是在哪里?
caerqq
2012-08-08 10:32:33
VC的socket变成除了在程序开始/结束的时候要掉WSAInit等函数来初始化和释放资源以外,编程模型方面和posix的标准socket编程到底有哪些重要的区别呢?
有什么特别的地方是winsock可以做的而标准的posix socket做不到的?
...全文
387
3
打赏
收藏
Winsock和Posix的socket编程,主要区别是在哪里?
VC的socket变成除了在程序开始/结束的时候要掉WSAInit等函数来初始化和释放资源以外,编程模型方面和posix的标准socket编程到底有哪些重要的区别呢? 有什么特别的地方是winsock可以做的而标准的posix socket做不到的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oyljerry
2012-08-08
打赏
举报
回复
不同平台的支持,应该都实现了近似的功能
ouyh12345
2012-08-08
打赏
举报
回复
没什么大区别,都是协议的具体体现
因为多线程和ipc,可能iocp和e-pool是最大的不同吧
youngwolf
2012-08-08
打赏
举报
回复
网络模型本质上分两娄:
一是对可读可写状态的查询(select pselect poll ppoll epoll WSAAsynSelect WSAEventSelect);
一是对读写结果的查询(重叠IO、完成端口、aio、libaio);
对于aio,它是glibc实现的异步IO模型,对于libaio,它是linux下专有异步IO模型,aio并不是对libaio的包装,而是另外实现的。aio目前来说似乎没有统一,资料也不全,能否用于套接字,我也不太清楚。
对于可读可写的查询,又分两类:
一类是用户维护查询列表及状态(select pselect poll ppoll);
一类是系统维护查询列表及状态(WSAAsynSelect WSAEventSelect epoll);
注:对于WSAAsynSelect WSAEventSelect的具体工作模式,我也不太清楚,感觉是这样。
如果非要说windows能做posix不能做,那可能就是不aio和libaio了,上面说了,我也不太清楚它是否能用于套接字,如果不能,那posix下就根本没有异步IO模型了(用于套接字的)
windows和posix就一个几乎完全一样,那就是select,你几乎用这个模型,马上就能写出一个跨平台的程序,但它们有小的区别:
一是第一个参数nfds,在win下无用,在posix下有用,还必须设置正确,可以看man帮助;
二是posix可能会修改最后一个参数表达还剩余多少时间,而win则不会(感觉,你看看msdn吧);
Ch Professional 6.3.0.14141
Ch是一个跨平台的C/C++脚本解释器,它支持ISO的C语言标准(C90/C99)和C++类库,附带了8000多个函数库并支持众多的工业标准,支持
POSIX
, socket/
Winsock
, X11/Motif, OpenGL, ODBC, C LAPACK, GTK+, Win32, XML, 和CGI...
socketjava源码-demo-sockets-io-nio-nio2:“Java套接字I/O:阻塞,非阻塞和异步”文章和源代码
socket java原始码Java套接字I / O:阻塞,非阻塞和异步 介绍 在描述I / O时,术语“非阻塞”和“异步”通常可以互换使用,但是它们之间存在显着差异。 本文描述了Java中非阻塞和异步套接字I / O操作之间的理论和...
Socket编程
系列之2:Windows-API网络编程入门实战
Socket编程
系列初步计划:
Socket编程
系列之1: Linux-API 网络编程入门实战
Socket编程
系列之2: Windows-API 网络编程入门实战
Socket编程
系列之3: Muduo 网络编程入门实战
Socket编程
...
ChIDE集成开发环境和Ch命令窗口使用入门
Ch是一个跨平台的C/C++脚本解释器,它支持ISO的C语言标准(C90/C99)和C++类库,附带了8000多个函数库并支持众多的工业标准,支持
POSIX
, socket/
Winsock
, X11/Motif, OpenGL, ODBC, C LAPACK, GTK+, Win32, XML, 和CGI...
【计算机网络】网络编程接口 Socket API 解读(1)
Socket 是网络协议栈暴露给编程人员的 API,相比复杂的计算机网络协议,API 对关键操作和配置数据进行了抽象,简化了程序编程。 本文讲述的 socket 内容源自 Linux 发行版 centos 9 上的 man 工具,和其他平台(比如...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章