2024年3月20日发(作者:)
《网络程序设计》复习题2
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编程中需要哪些文件?
发布评论