习题1.5
1.套接字在网络编程中的作用是什么?为什么称为套接字
在已经建立物理链接的计算机上,进行网络传输使用的软件设备,由操作系统提供
socket翻译为插座,这里理解为套接字
2.在服务器端创建套接字后,会依次调用listen函数和accept函数,比较并说明两者的作用
listen函数监听连接
accept函数受理连接,在没有连接时,调用该函数,不会返回,和listen存在前后的逻辑关系
3.linux中对套接字进行I/O时可以直接使用I/O相关函数,而Windows不可以,为什么
Linux不区分文件与套接字,而windows区分,所以设置特殊的函数进行I/O
4.创建套接字后要分配地址为什么? 用什么分配?
为了区分网络上不同机器的套接字,需要地址信息,先初始化再用Bind()分配
5.linux中的文件描述符和windows中的句柄非常相似,请用套接字为对象分析他们的含义
linux中的文件描述符是为了区别不同文件(linux不区分套接字和文件)而产生的编号
windows中的句柄类似文件描述符,为了区分不同套接字
6.底层文件i/o函数和ANSI标准定义的文件I/O有什么区别?
ANSI标准定义的输入,输出函数是和操作系统无关的以c为标准写的函数,相反 底层文件I/O时直接提供的,理论上ANSI标准I/O提供了一些机制,优于底层I/O