没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
《通信协议软件设计》课程作业三
Jayce 杰斯
1. 请解释说明下列套接字函数的三个入口参数的作用。
int socket(int domain, int type, int protocol);
1. domain 参数:
用于设置网络通信的域,函数根据这个参数选择通信协议的族。通信协议族在文件
sys/socket.h 中定义
名称
含义
名称
含义
PF_UNIX,PF_LOCAL
本地通讯
PF_X25
ITU-T X25 / ISO-
8208 协议
AF_INET,PF_INET
IPv4 Internet 协议
PF_AX25
Amateur radio AX.25
PF_INET6
IPv6 Internet 协议
PF_ATMPVC
原始 ATM PVC 访问
PF_IPX
IPX-Novell 协议
PF_APPLETALK
Appletalk
PF_NETLINK
内核用户界面设备
PF_PACKET
底层包访问
2. type 参数:
type 用于设置套接字通信的类型,主要有 SOCKET_STREAM(流式套接字)、SOCK——
DGRAM(数据包套接字)等。
名称
含义
SOCK_STREAM
Tcp 连接,序列化、可靠、双向连接的字节流。支持带外数据传输
SOCK_DGRAM
支持 UDP 连接(无连接状态的消息)
SOCK_SEQPACKET
序列化包,提供一个序列化、可靠、双向的基本连接的数据传输通道,数据
长度定常。每次调用读系统调用时数据需要将全部数据读出
SOCK_RAW
RAW 类型,提供原始网络协议访问
SOCK_RDM
提供可靠的数据报文,不过可能数据会有乱序
3. protocol 参数:
用于制定某个协议的特定类型,即 type 类型中的某个类型。通常某协议中只有一
种特定类型,这样 protocol 参数仅能设置为 0;但是有些协议有多种特定的类型,
就需要设置这个参数来选择特定的类型。
类型为 SOCK_STREAM 的套接字表示一个双向的字节流,与管道类似。流式的套接
字在进行数据收发之前必须已经连接,连接使用 connect()函数进行。一旦连接,
可以使用 read()或者 write()函数进行数据的传输。流式通信方式保证数据不会
丢失或者重复接收,当数据在一段时间内任然没有接受完毕,可以认为这个连接
已经死掉。
SOCK_DGRAM 和 SOCK_RAW 这个两种套接字可以使用函数 sendto()来发送数据,
使用 recvfrom()函数接受数据,recvfrom()接受来自制定 IP 地址的发送方的数
据。
SOCK_PACKET 是一种专用的数据包,它直接从设备驱动接受数据。
df595420469
- 粉丝: 23
- 资源: 310
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0