1. Socket有哪些分类
流式Socket:用于TCP通信;
数据报Socket:用于UDP通信;
原始Socket:用于新的网络协议实现的测试等
2. 主机名和地址之间转化的函数有哪些?
名字和数值地址间的转换:gethostbyname,gethostbyaddr;
它们都可以实现IPv4和IPv6的地址和主机名之间的转化,其中gethostbyname()是将主机名转化成IP地址,gethostbyaddr()则是逆操作,是将IP地址转换成主机名
3. listen监听的使用范围是什么
Socket连接过程,可以分为三个步骤,服务器监听,客户端请求,连接确认;
服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接状态,实时监听网络状态
4. send,sendto有什么区别
send用于TCP SOCK_STREAM,sendto()用于UDP SOCK_DGRAM,
5. recv,recvfrom有什么区别
对于recvfrom可同时应用于面向连接和面向无连接的套接字;
recv一般只用在面向连接的套接字,几乎等同于recvfrom,只是把recvfrom的第5个参数设置为NULL
6. 什么是并行服务器
多个用户同时向同一台服务器发出请求,这几个请求都发到服务器的同一个端口进行处理
7. fcntl有什么作用
Int fcntl(int fd,int cmd,...)
fcntl是计算机中的一种函数,通过fcntl可以改变已打开的文件性质,fcntl针对描述符提供控制,参数fd是被参数cmd操作的描述符,针对cmd的值,fcntl可以接受第三个参数int arg
fcntl的返回值和命令有关,如果出错,所有命令都返回-1,如果成功则返回其他某个值
8. 什么是多路转接模型?
利用一个监听者,当有客户端发出连接请求及客户端发送信息时,才会和服务器连接
9. select函数起什么作用?
使用select()就可以实现非阻塞方式工作的程序,它能够监视我们需要监视的文件描述符的变化情况-读写或是异常
10. 结构体中数据优先顺序转换会怎么样?
在大小端处理时,遇到不是整自己的变量,定义结构体以uint_8为单位定义,对于超过一字节又不足两字节的变量,要拆成两部分处理