网络编程
文章平均质量分 91
wangdapao12138
如果知识就是力量,我曾比牛还壮!
展开
-
Linux网络编程1之什么是什么是网路通信?
1.网络通信概述 1.1从进程间通信说起:网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信。 1.2网络通信的层次 1)硬件部分:网卡 2)操作系统底层:网卡驱动 3)操作系统API:socket接口 4)应用层:低级(直接基于socket接口编程) 5)应用层:高级(基于网络通信应用框架库) 6)应用层:更高级(http、网络控件等) 1.3...原创 2018-07-16 21:29:49 · 816 阅读 · 0 评论 -
Linux应用编程7之什么是高级IO
1.非阻塞IO 1.1、阻塞与非阻塞 1.2、为什么有阻塞式 (1)常见的阻塞:wait、pause、sleep等函数;read或write某些文件时 (2)阻塞式的好处:这种设计非常有利于操作系统的性能发挥。没有降低CPU的性能。 1.3、非阻塞 (1)为什么要实现非阻塞,非阻塞其实就是轮询 (2)如何实现非阻塞IO访问:O_NONBLOCK和fcntl 2.阻塞式IO的困境 ...转载 2018-07-18 08:12:48 · 331 阅读 · 0 评论 -
Linux应用编程6之什么是信号?
1.什么是信号 1.1、信号是内容受限的一种异步通信机制 (1)信号的目的:用来通信 (2)信号是异步的(对比硬件中断) (3)信号本质上是int型数字编号(事先定义好的) 1.2、信号由谁发出 (1)用户在终端按下按键 (2)硬件异常后由操作系统内核发出信号 (3)用户使用kill命令向其他进程发出信号 (4)某种软件条件满足后也会发出信号,如alarm闹钟时间到会产生SIGA...转载 2018-07-18 08:12:42 · 1541 阅读 · 0 评论 -
Linux应用编程5之什么是进程?
1.程序的开始和结束 1.1.main函数由谁调用 (1)编译链接时的引导代码。操作系统下的应用程序其实在main执行前也需要先执行一段引导代码才能去执行main,我们写应用程序时不用考虑引导代码的问题,编译连接时(准确说是连接时)由链接器将编译器中事先准备好的引导代码给连接进去和我们的应用程序一起构成最终的可执行程序。 (2)运行时的加载器。加载器是操作系统中的程序,当我们去执行一个程序时...转载 2018-07-18 08:12:30 · 309 阅读 · 0 评论 -
Linux应用编程4之proc文件介绍
1.proc文件系统介绍 1.1.操作系统级别的调试 1)简单程序单步调试 2)复杂程序printf打印信息调试 3)框架体系日志记录信息调试 4)内核调试的困境 1.2.proc虚拟文件系统的工作原理 1)linux内核是一个非常庞大、非常复杂的一个单独的程序,对于这样的一个程序来说调试是非常复杂的。 2)像kernel这样庞大的项目,给里面添加/更改一个功能是非常麻烦的,因为你...转载 2018-07-18 08:12:25 · 467 阅读 · 0 评论 -
Linux应用编程3怎样获取系统信息?
1.关于时间的概念 1.1.GMT时间 1)GMT是格林尼治时间,也就是格林尼治地区的当地时间。 2)GMT时间的意义?用格林尼治的当地时间作为全球国际时间,用以描述全球性的事件的时间,方便大家记忆。 3)一般为了方便,一个国家都统一使用一个当地时间。 1.2.UTC时间 1)GMT时间是以前使用的,近些年来越来越多的使用UTC时间。 2)关于北京时间,可以参考:http://www...转载 2018-07-18 08:12:20 · 280 阅读 · 0 评论 -
Linux应用编程2什么是文件属性?
1.linux中各种文件类型 1.1.普通文件(-regular file) 1)文本文件。文件中的内容是由文本构成的,文本指的是ASCII码字符。文件里的内容本质上都是数字(不管什么文件内容本质上都是数字,因为计算机中本身就只有1和0),而文本文件中的数字本身应该被理解为这个数字对应的ASCII码。常见的.c文件, .h文件 .txt文件等都是文本文件。文本文件的好处就是可以被人轻松读懂和...转载 2018-07-18 08:12:14 · 228 阅读 · 0 评论 -
linux应用编程1之什么是IO?
1.什么是应用编程? 1)典型的嵌入式产品就是基于嵌入式linux操作系统来工作的。 典型的嵌入式产品的研发过程就是:第一步让linux系统在硬件上跑起来(系统移植工作),第二步基于linux系统来开发应用程序实现产品功能。 2)基于linux去做应用编程,其实就是通过调用linux的系统API来实现应用需要完成的任务。 2.什么是文件IO IO就是input/output,输入/输出。...原创 2018-07-17 21:21:33 · 671 阅读 · 0 评论 -
Linux网络编程2之网络编程框架?
1.网络是分层的 1)OSI 7层模型 2)网络为什么要分层 这个其实类似于程序的模块化思想,就如同我们将一个大的程序封装为一个个的函数实现。整个程序的框架结构不变,而具体逻辑操作交由不同的函数实现。函数的实现方法可以多样化,但实现的功能相同,对外提供的接口保持不变(这里,函数的接口则相当于各分层协议的标准)。当需要改变程序的某些功能实现时,通常我们只需针对具体的函数模块作调整,这样...原创 2018-07-17 21:13:13 · 1466 阅读 · 2 评论 -
Linux应用编程8之什么是线程?
1.再论进程 1.1多进程实现同时读取键盘和鼠标 #include <stdio.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int m...转载 2018-07-18 08:12:52 · 223 阅读 · 0 评论