C语言面试笔试整理笔记(四)
2012-10-09 09:38
323 查看
在嵌入式学习中,网络协议和进程非常重要。首先说一下ISO-7层模型和TCP/IP 5层模型:
ISO-7层有:物理层->数据链路层->网络层->传输层->会话层->表示层->应用层。
TCP/IP 有:物理层,数据链路层,网络层,传输层,应用层。
FTP,HTTP是在应用层;TCP/UDP工作在网络层;
交换机工作在数据链路层;路由器工作在网络层;集线器(hub)工作在物理层;
socket接口是TCP/IP网络的API,socket是一种文件描述符,有类似打开文件的socket();
(1)socket的建立:返回的socket描述符,是一个指向内部数据结构的指针,建立一个socket意味着给一个socket数据结构分配空间,两个网络程序之间的一个网络连接需要包含5钟信息:通信协议,本机地址,本机端口,远端地址,远端端口。
(2)socket的配置:TCP的客户端通过connect函数在socket数据结构中保存以上信息。
TCP的服务端,UDP中的服务器和客户端都是通过bind函数来保存信息。
网络中的高字节优先,对于低字节优先的机器需要转换:htonl, htons, ntohl, ntohs。
(3)连接建立:TCP是基于连接的通信协议,而UDP不需要建立连接。
listen函数使socket处于被监听的模式,并为该socket建立队列,供程序处理,进入连接的请求在队列中等待accept他们
(4)数据传输:send和recve用于TCP数据传输。
sendto和recvefrom用于UDP数据传输。因为没有连接,所以每次收发都需要指明地址。
阻塞和非阻塞:设置socket为非阻塞模式,可以轮询诺干个socket,但此轮询会占用大量CPU时间,而select则可解决此问题,他能将进程本身挂起,而同时使监听所要求的一组文件描述符的任何活动。
进程和线程的区别:
(1)进程是系统运行中的一个应用程序,是系统资源分配的基本单元,在内存中有完备的数据空间和代码空间,一个进程所拥有的数据和变量都属于他自己。
(2)线程是进程中相对独立的可执行单位,他与父进程的其他线程共享代码空间和全局变量,但有独立的堆栈。
(3)一个进程至少有一个线程,也可以有多个线程;一个线程必须要有一个父进程,多个进程和线程都可以并发执行。
ISO-7层有:物理层->数据链路层->网络层->传输层->会话层->表示层->应用层。
TCP/IP 有:物理层,数据链路层,网络层,传输层,应用层。
FTP,HTTP是在应用层;TCP/UDP工作在网络层;
交换机工作在数据链路层;路由器工作在网络层;集线器(hub)工作在物理层;
socket接口是TCP/IP网络的API,socket是一种文件描述符,有类似打开文件的socket();
(1)socket的建立:返回的socket描述符,是一个指向内部数据结构的指针,建立一个socket意味着给一个socket数据结构分配空间,两个网络程序之间的一个网络连接需要包含5钟信息:通信协议,本机地址,本机端口,远端地址,远端端口。
(2)socket的配置:TCP的客户端通过connect函数在socket数据结构中保存以上信息。
TCP的服务端,UDP中的服务器和客户端都是通过bind函数来保存信息。
网络中的高字节优先,对于低字节优先的机器需要转换:htonl, htons, ntohl, ntohs。
(3)连接建立:TCP是基于连接的通信协议,而UDP不需要建立连接。
listen函数使socket处于被监听的模式,并为该socket建立队列,供程序处理,进入连接的请求在队列中等待accept他们
(4)数据传输:send和recve用于TCP数据传输。
sendto和recvefrom用于UDP数据传输。因为没有连接,所以每次收发都需要指明地址。
阻塞和非阻塞:设置socket为非阻塞模式,可以轮询诺干个socket,但此轮询会占用大量CPU时间,而select则可解决此问题,他能将进程本身挂起,而同时使监听所要求的一组文件描述符的任何活动。
进程和线程的区别:
(1)进程是系统运行中的一个应用程序,是系统资源分配的基本单元,在内存中有完备的数据空间和代码空间,一个进程所拥有的数据和变量都属于他自己。
(2)线程是进程中相对独立的可执行单位,他与父进程的其他线程共享代码空间和全局变量,但有独立的堆栈。
(3)一个进程至少有一个线程,也可以有多个线程;一个线程必须要有一个父进程,多个进程和线程都可以并发执行。
相关文章推荐
- C语言面试笔试整理笔记(一)
- C语言面试笔试整理笔记(二)
- C语言面试笔试整理笔记(三)
- C语言面试笔试整理笔记(五)
- [转载]各大it公司2012校园招聘笔试面试整理
- 面试的算法1(C语言)(整理)(组合数 字符串倒置 最大公共串)
- 2017最新Java基础知识面试笔试整理--jvm基础篇
- C/C++求职宝典21个重点笔记(常考笔试面试点)
- 精心整理的C语言面试题目
- java面试笔试题整理
- 笔试面试整理
- 面试问题整理笔记系列 一 Java线程类
- C语言链表在笔试面试中常考问题总结
- C语言面试笔试题
- C/C++求职宝典21个重点笔记(常考笔试面试点)
- 经典C语言笔试面试题汇总整理
- java面试笔试题整理
- Android 面试笔试集锦 --- 基本知识点 整理版
- 面试笔记整理
- 2011Android技术面试整理附有详细答案(包括百度、新浪、中科软等多家公司笔试面试题)