- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一天 ACE Socket
ACE Socket
Allen Long
ihuihoo@
huihoo - Enterprise Open Source
内容安排
• 如何访问OS服务
• TCP/IP Socket编程接口
• 使用ACE UDP类进行网络编程
• 单播、广播、多播
Socket Interface
Socket Interface
3
Socket API概述(1/2)
Sockets 是网络编程最普遍的接口
Socket API最初是在 BSD Socket通过Socket API创建通信端点,并通过句柄
Unix 中开发,用来为TCP/IP (handle)访问
协议族提供应用级程序接口 每个socket都可以绑定一个本地地址和一个远程地址
The Socket API 分五类有近 In Unix,对大多数应用来讲, socket句柄和其他I/O句柄
20多个函数 (如:文件、管道、终端设备句柄)可以互换使用.而在
windows 中却不可以.
本地管理:socket接口为管理本地上下文信息提供以下函数:
socket :分配最小的未用socket句柄;
bind:将socket句柄与本地或远地地址相关联;
本地上下文管理
getsockname和getpeername :分别确定socket所连接的本地或远地地址;
(Local context
close:释放socket句柄,使它可用于后面的复用。
management)
连接建立和连接终止:socket接口为建立和终止连接提供以下函数:
connect:客户通常使用connect来主动地与服务器建立连接;
连接建立和终止
listen:服务器使用listen来指示它想要被动地侦听进入的客户连接请求;
(Connection
accept:服务器使用accept来创建新的通信端点,以为客户服务;
establishment
shutdown:有选择地终止一个双向连接的读端和/或写端流。
termination)
4
Socket API 概述(2/2)
数据传输机制:socket接口提供以下函数来发送和接收数据:
read/write:通过特定句柄接收和传输数据缓冲区;
send/recv:与read/write类似,但它们提供一个额外的参数来控制特定 socket特有操作(比如交换“紧急”数据,或“偷
数据传输机制
看”接收队列中的数据,而又不把它从队列中移除);
sendto/recvfrom :交换无连接数据报;
readv/writev:分别支持“分散读”和“集中写”语义(这些操作优化用户/ 内核模式切换并简化内存管理);
sendmsg/recvmsg:通用函数,包含了所有其他数据传输函数的行为。对于UNIX域 socket,sendmsg和recvmsg函数还
提供在同一主机的任意进程间传递“访问权限”(比如打开文件句柄)的能力。
注意这些接口也可被用于其他类型 I/O,比如文件和终端。
选项(option)管理:socket接口定义以下函数,允许用户改变socket行为的缺省语义:
setsockopt和getsockopt:修改或查询在协议栈不同层次中的选项。选项包括多点传送、广播,以及设置/获取发送和接收传
选项管理
输缓冲区的大小;
fcntl和i
文档评论(0)