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


    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函数。

  • 相关阅读:
    GET和POST请求的区别
    MATLAB(0)综述
    单片机中文编程器手机版:功能解析与用户体验
    mysql日志(错误日志、binlog日志、查询日志、慢日志)
    【C语言】二维数组
    格林公式的理解
    Linux的shell(极其粗糙版)
    MySQL权限与安全管理
    【leetcode】2578.最小和分割
    【乐吾乐3D可视化组态编辑器】数据
  • 原文地址:https://blog.csdn.net/ssz__/article/details/136456056