没有合适的资源?快使用搜索试试~ 我知道了~
网络程序设计复习题.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 121 浏览量
2022-06-21
03:03:36
上传
评论
收藏 42KB DOC 举报
温馨提示
试读
3页
1.什么叫套接字?套接字按通信性质可以分为哪两类? 多个 TCP 连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应 用程序进程和连接,许多计算机操作系统为应用程序与 TCP/IP 协议交互提供了称为套接字(Socket)的接口。套接字按通信性质分:会话套接字和数据 报套接字。 2.理解线程的创建与使用方法,并能应用到程序设计中。P66 3、异构环境下的网络程序设计需要考虑哪些问题? 1) 字节顺序:不同的平台以不同的方式存放一个二进制数。最常见的有两种格式:大数在 前的字节顺序和小数在前的字节顺序。大数在前的字节顺序是指将一个多字节数的 高序字节存储在内存的起始地址;而小数在前的字节顺序则相反,将低序字节存储在 内存的起始地址。 2) 字的长度:不同的实现对于相同的数据类型可能有不同的表示长度。 3) 字节定界问题:不同的平台上为结构体(struct)或共同体(union)打包的方式也是不 同的,这取决于所有数据类型的位数及机器的定界限制。 4、为什么在数据结构struct sockaddr_in中,成员变量sin_addr和sin_port需要转换为网
资源推荐
资源详情
资源评论
网络程序设计复习题
1.什么叫套接字?套接字按通信性质可以分为哪两类?
多个 TCP 连接或多个应用程序进程可能需要通过同一个 TCP 协议端口传输数据。为了区别不同的应用程序进程和连
接,许多计算机操作系统为应用程序与 TCP/IP 协议交互提供了称为套接字(Socket)的接口。套接字按通信性质分:
会话套接字和数据报套接字。
2.理解线程的创建与使用方法,并能应用到程序设计中。P66
3、异构环境下的网络程序设计需要考虑哪些问题?
1) 字节顺序:不同的平台以不同的方式存放一个二进制数。最常见的有两种格式:大数在前的字节顺序和小数
在前的字节顺序。大数在前的字节顺序是指将一个多字节数的 高序字节存储在内存的起始地址;而小数在前的字节
顺序则相反,将低序字节存储在 内存的起始地址。
2) 字的长度:不同的实现对于相同的数据类型可能有不同的表示长度。
3) 字节定界问题:不同的平台上为结构体(struct)或共同体(union)打包的方式也是不同的,这取决于所有
数据类型的位数及机器的定界限制。
4、为什么在数据结构 struct sockaddr_in 中,成员变量 sin_addr 和 sin_port 需要转换为网络字节顺序,而
sin_family 不需要呢?
Sin_addr 和 sin_port 分别封装在包的 IP 和 UDP 层,必须要是网络字节顺序。 Sin_family 域只是被内核使用
来决定在数据结构中包含什么类型的地址,没有发送到网络上,所以它必须是本机字节顺序
5、从网络编程的角度来简述和比较 IP 地址和端口的作用。
端口:是一种抽象的软件结构。应用程序通过系统调用与某端口建立连接(binding) 后,传输层传给该端口的
数据都被相应进程所接受,相应进程发给传输层的数据都通 过该端口输出。在 TCP/IP 协议的实现中,端口操作类似
一般的 I/O 操作,进程获取一 个端口,相当于获取本地唯一的 I/O 文件。 地址:网络通信中通信的两个进程在不同
的机器上。这两个机器可能位于不同的网 络,这些网络通过网络互联设备连接。因此需要三级寻址:某一主机与多
个网络相 连,必须指定一特定网络地址;网络上每一主机应有唯一的地址;每一主机上的每一 进程有在主机上的唯
一标识符。
6、为什么网络编程时需要考虑字节顺序问题?
不同的平台以不同的方式存放一个二进制数。最常见的有两种格式:大数在前的字节顺序和小数在前的字节顺序。大
数在前的字节顺序是指将一个多字节数的 高序字节存储在内存的起始地址;而小数在前的字节顺序则相反,将低序
字节存储在 内存的起始地址。
7、WinSock 编程中需要哪些文件?
1) ws2_32.dll 是 Windows Sockets 应用程序接口, 用于支持 Internet 和网络应用程序。程序运行时会自动
调用 ws2_32.dll 文件,ws2_32.dll 是个动态链接库文件位于系统文件夹中。
2) Ws2_32.lib:里面定义了所有套接口函数的功能,在链接阶段,需要使用套接口的执行代码。
3) Winsock2.h:所有套接口函数的声明都放在这个头文件中,因此,我们所写的套接口程序必须把该头文件包含进
来。
8、UDP 程序的工作模型隐含着通信标识五元组的建立过程。这五元组在 UDP 的客户与服务端是由哪些函数分别确
定的?
客户端:socket()函数确定通信协议,sendto()函数确定确定远地地址和远地端口,在发送信息时,如未
绑定本地地址和本地端口,会自动调用 bind()函数进行绑定。
服务端:socket()函数确定通信协议,bind()函数确定本地地址和本地端口,必须显示调用 bind()函数,
否则无法接受数据,recvform()确定远地地址和远地端口。
9、什么是阻塞与非阻塞通信?请解释两者的区别。
通信包括阻塞和非阻塞两种模式。阻塞调用是指调用结果返回之前,当前线程会被挂起。 阻塞调用 函数只有在
得到结果之后才会返回。非阻塞和阻塞的概念相对应,指在不能立刻得到结果 之前,该函数不会阻塞当前线程,而
会立刻返回。 区别:对于不同的协议,阻塞通信和非阻塞通信有不同的表现。以端口为例,利用 TCP 协议发送一个
报文时,如果低层协议没有可用空间来存放用户数据,则 应用进程将阻塞等待直到协议有可用的空间。而在非阻塞
模式下,调用将直接返回而不需 等待。在应用进程调用接收函数接收报文时,如果是在阻塞模式下,若没有到达的
数据, 则调用将一直阻塞直到有数据到达或出错;而在非阻塞模式下,将直接返回而不需等待。 对于 UDP 协议而
言,由于 UDP 没有发送缓存,因此所有 UDP 协议即使在阻塞模式下也不会发生阻塞。 对于面向连接的协议,在连
接建立阶段,阻塞与非阻塞也表现不一。在阻塞模式下,如果 对于面向连接的协议 没有连接请求到达,则等待连接
调用将阻塞直到有连接请求到达;但在非阻塞模式下,如 果没有连接请求到达,等待连接调用将直接返回。
10、简述各种类型数据的发送与接收处理的方法。P27
整数:/*UDP 发送整数示例*/
int a = 1234;
int sByte = sendto(sock,(char *)&a,sizeof(a),0,(sockaddr *)&RemotAaddr,sizeof(RemotAaddr));
资源评论
是空空呀
- 粉丝: 170
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功