嵌入式面试常见问题(四)

1.在基于Linux的网络套接字编程中,如果需要创建一个IPv4的网络套接字,应该在socket函数中指定domain参数为AF_INET

解析: 

socket()函数创建套接字

函数原型:int socket(int domain, int type, int protocol);

domain:协议簇,表明IP地址的类型

AF_INET : IPv4

AF_INET6: IPV6

type:socket的类型

SOCK_STREAM:面向连接的数据传输方式

SOCK_DGRAM:无连接的数据传输方式

protocol:传输协议(一般为0)

IPPROTO_TCP:TCP传输协议

IPPTOTO_UDP:UDP传输协议

返回值

成功:大于或等于0

失败:-1

2.常见的TCP/IP应用层协议有:FTP、HTTP/HTTPS、SMTP、NTP、SSH等。PPP协议属于数据链路层协议.

3.客户端TCP连接的三次握手发生在客户端connect连接的过程中。

4. IPv4使用4个字节表示IP地址;IPv6使用16个字节表示IP地址;1字节8位,IPv4是4字节32位, IPv6是16字节128位

5.TCP/IP协议网络分层中的四层分别是应用层、传输层、网络层和数据链路层


6.TCP协议是一个可靠的面向连接的传输层协议;UDP协议是一种不可靠的无连接的传输层协议;TCP协议比UDP协议在通讯上更可靠;TCP协议不支持多播和广播,而UDP协议可以支持多播和广播;TCP协议比UDP协议在数据传输前的操作更复杂;因为它需要三次握手建立连接之后,才能收发数据,而UDP协议则不需要握手连接这一步;TCP协议是面向字节流的,而UDP协议是面向报文的

7.TCP通信只能是一对一的通信,但UDP支持一对一,一对多,多对一和多对多交互通信。 

8.bind函数在客户端和服务端都可以调用,只不过常见的是服务器调用,而客户端调用很少见。 udp通信时,客户端想要指定特定端口进行通信可以使用bind函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值