![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux基础
Hanson_1999
0
展开
-
网络编程域名解析函数gethostbyname()的使用
我们通常在网页上访问一个网址,例如访问百度时,我们通常是输入www.baidu.com,这种表示是代表百度的域名,实际上当我们在访问这个网址的时候,操作系统会自动向DNS服务器发送请求,来获取百度的ip,完成域名到ip的转换。在计算机网络中,通常我们我们在访问一个网址时,输入的是该网址的域名,而不是ip,因为像百度这种网址的ip通常是公有ip,这种ip是会变的,我们当然不会去记它会变的i...原创 2018-11-18 16:27:42 · 2089 阅读 · 0 评论 -
Linux下利用socket进行通信
1.socket计算机专业术语:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通...原创 2019-03-26 14:37:30 · 1345 阅读 · 0 评论 -
Linux多进程编程fork和vfork系统调用
服务器按处理方式可以分为迭代服务器和并发服务器两类。平常用C写的简单Socket客户端服务器通信,服务器每次只能处理 一个客户的请求,它实现简单但效率很低,通常这种服务器被称为迭代服务器。 然而在实际应用中,不可能让一个服务器长时间 地为一个客户服务,而需要其具有同时处理 多个客户请求的能力,这种同时可以处理多个客户请求的服务器称为并发服务器,其 效率很 高却实现复杂。在Linux的服务器编程中...原创 2019-03-26 16:10:00 · 420 阅读 · 0 评论 -
Linux下多线程编程以及互斥锁
在操作系统原理的术语中,线程是进程的一条执行路径。线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进 程,但却可以看作是Unix进程的表亲,所有的线程都是在同一进程空间运行,这也意味着多条线程将共享该进程中的全部系统资 源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境 (register context),自己的...原创 2019-03-27 13:49:48 · 390 阅读 · 0 评论 -
Linux多路复用select
前面提到过,使用多进程和多线程来提高系统运行的效率,多线程的并发相对多进程来说占用的资源更少,效率相比多进程更快, select()函数允许进程指示内核等待多个事件(文件描述符)中的任何一个发生,并只在有一个或多个事件发生或经历一段指定时 间后才唤醒它,然后接下来判断究竟是哪个文件描述符发生了事件并进行相应的处理。#include <sys/select.h> #include &...原创 2019-03-27 17:10:14 · 262 阅读 · 0 评论 -
Linux多路复用epoll
在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。自 Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性能网络服务器的必备技术,在大数据、高并发、集群等一些名 词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。select的缺点:单个进程能够监视...原创 2019-03-28 15:02:47 · 241 阅读 · 0 评论 -
TLV自定义通信协议的编码和解析
以下内容均为原创,如有错误,欢迎指正,感激!!!说到通信协议,不得不谈的就是计算机网络中的TCP/IP协议,Linux C提供的网络socketAPI就是基于TCP/IP协议的可靠通信。在计算机网络中,为提高数据传输的可靠性,TCP/IP协议中用到多种对数据的封装和加密来保证接收端收到正确的数据和丢弃错误的数据,而这些"可靠"的接口都是TCP/IP协议隐藏实现直接提供给User的。以往我们见到的...原创 2019-04-27 14:59:38 · 1589 阅读 · 0 评论 -
不可重入函数,信号量,可重入函数
在了解了一下不/可重入函数以及互斥锁,信号量后,写了这篇blog。先看一下这个程序:void fun(int *val){ *val+=1; return ;}int main(){ static int val=0;//or int val=0; /* */ fun(&val); return 0;}函数f...原创 2019-03-28 23:52:14 · 552 阅读 · 0 评论 -
Linux下的文件IO
大概是一年前学习的Linux文件IO,现在整理一下。Linux下一切皆文件,我们对Linux下任何设备的操作都是对文件的操作,学习了Linux驱动开发就会对“文件操作”有很强烈的感觉。Linux的虚拟文件系统给我们提供了大量的对文件进行操作的系统调用:文件描述符文件描述符(file descriptor, fd)是Linux内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是...原创 2019-07-27 00:11:29 · 242 阅读 · 0 评论