设为首页 加入收藏

TOP

Windows Sockets 1.1编程(十八)
2010-12-30 20:55:25 来源: 作者: 【 】 浏览:14094
Tags:Windows Sockets 1.1 编程
;            
   {...}

 

2.6.10 原始套接口

       Windows Sockets规范并没有规定Windows Sockets DLL必须支持原始套接口-用SOCK_RAW打开的套接口。然而Windows Sockets规范鼓励Windows Sockets DLL提供原始套接口支持。一个Windows Sockets兼容的应用程序在希望使用原始套接口时应该试图用socket()调用(参见5.1.23节)来打开套接口。如果这么做失败了,应用程序则应该使用其他类型的套接口或向用户报告错误。

 

2.7 在多线程Windows版本中的Windows Sockets

       Windows Sockets接口被设计成既能够在单线程的Windows版本(例如Windows 3.1)又能够在占先的多线程Windows版本(例如Windows NT)中使用,在多线程环境中,套接口接口基本上是不变的。但多线程应用程序的作者必须知道,在线程之间同步对套接口的使用是应用程序的责任,而不是Windows Sockets实现的责任。这一点在其他形式的I/O中管理,例如文件I/O中是一样的。没有对套接口调用进行同步将导致不可预测的结果。例如,如果有两个线程同时调用同一套接口进行send(),那么数据发送的先后顺序就无法保证了。

       在一个线程中关闭一个未完成的阻塞的套接口将会导致另一个线程使用同一套接口的阻塞调用出错(WSAEINTER)返回,就象操作被取消一样。这也同样适用于某一个select()调用未完成时,应用程序关闭了其中的一个被选择的套接口。

       在占先的多线程Windows版本中,并没有缺省的阻塞钩子函数。这是因为如果一个单一的应用程序在等待某一操作结束时并不会调用PeekMessage()GetMe

首页 上一页 15 16 17 18 19 20 下一页 尾页 18/20/20
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Windows Sockets 1.1应用实例 下一篇没有了

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: