网络编程(二)

来源:互联网 发布:java 泛型 静态 编辑:程序博客网 时间:2024/05/22 01:49

1. Socket有哪些分类

流式Socket:用于TCP通信;

数据报Socket:用于UDP通信;

原始Socket:用于新的网络协议实现的测试等

 

2. 主机名和地址之间转化的函数有哪些?

名字和数值地址间的转换:gethostbyname,gethostbyaddr;

它们都可以实现IPv4IPv6的地址和主机名之间的转化,其中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为单位定义,对于超过一字节又不足两字节的变量,要拆成两部分处理