
Linux应用编程
tanyjin
这个作者很懒,什么都没留下…
展开
-
linux 下 select 编程
linux 下的 select 知识点 unp 的第六章已经描述的很清楚,我们这里简单的说下 select 的作用,并给出 select 的客户端实例。我们知道 select 是IO 多路复用的一个最简单支持,poll 和 epoll 是 select 的升级版。在 UNIX 网络编程第五章读书笔记 我们遇到这样一个问题:当客户端阻塞在 fgets() 等待客户输入的时候,服务器端断开连接。而客户端转载 2017-02-27 23:19:21 · 334 阅读 · 0 评论 -
linux c下简单实现服务端与多客户端同时连接
参考文章:http://blog.youkuaiyun.com/kangroger/article/details/41753605http://www.cnblogs.com/xudong-bupt/archive/2013/12/29/3483059.html 对于服务器端来说,通过bind、listen,之后accept建立新的连接。accept返回的转载 2017-04-16 23:39:56 · 581 阅读 · 0 评论 -
linux 下各errno的意义
errno 在 #include <errno.h> #include <string.h> #include <stdio.h> int main() { int i; for(i = 0; i < 140; ++i) { errno = i; printf("errno %d :\t\t%s\n",i,st转载 2017-04-20 17:56:06 · 749 阅读 · 0 评论 -
pthread_join函数及linux线程
pthread_join函数及Linux线程pthread_join使一个线程等待另一个线程结束。代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。所有线程都有一个线程号,也就是Thread ID。其类型为pthread_t。通过调用转载 2017-04-20 19:37:10 · 670 阅读 · 0 评论 -
关于事件驱动编程
关于事件驱动编程全世界最熟悉事件驱动的程序员应该就是前端工程师了,不管是桌面前端还是web前端都是世界上最熟悉事件驱动的,以web前端为例,我们作业面可以不去想什么面向对象编程,什么jQuery框架咋用,但是为按钮,为页面元素添加相关事件操作肯定是不可缺少的,而web前端的事件处理机制就是标准的事件驱动机制,为了讲解清楚事件驱动,这里我回顾下页面里事件机制,我们开发页面事件的时候,第一步就是定一事件转载 2017-04-21 14:00:06 · 3706 阅读 · 1 评论 -
Linux ubuntu 升级OpenSSL教程
升级OpenSSL为官方更新修复的版本或未受影响的版本,例如OpenSSL-1.0.1t。 查看已安装的版本信息:openssl versionOpenSSL 1.0.1g 01 Jul 2014这里把openSSL升级到1.0.1t版本:wget https://www.openssl.org/source/openssl-1.0.1t.tar.gztar zvxf openssl-1.0.1t转载 2017-05-23 21:22:08 · 2071 阅读 · 0 评论 -
iptables工具__过滤包—命令(-A、-I、-D、-R、-L等)、参数(-p、-s、-d、--sport、--dport、-i、-o等)、动作-j (ACCEPT、DROP、REJECT、RED
iptables 指令语法: iptables [-t table] command [match] [-j target/jump] -t 参数用来指定规则表,内建的规则表有三个,分别是:nat、mangle 和 filter, 当未指定规则表时,则一律视为是 filter。各个规则表的功能如下:转载 2017-04-25 21:13:54 · 1587 阅读 · 0 评论 -
iptables
sudo /sbin/iptables -A OUTPUT -p tcp –dport 80 -j DROP 屏蔽输出目的端口为80的数据sudo /sbin/iptables -A INPUT -p tcp –sport 80 -j DROP 屏蔽输入源端口为80的数据sudo /sbin/iptables -A OUTPUT -p tcp –dport 80 -j ACCEPT 开启输出目转载 2017-04-12 20:42:45 · 282 阅读 · 0 评论 -
异步消息传递技术的比较:JMS、AMQP和MQTT
消息传递作为基本通信机制已经在全世界成功运用。无论是人与人、机器与人还是机器与机器之间,消息传递一直都是唯一常用的通信方式。在双方(或更多)之间交换消息有两种基本机制。 1.同步消息传递 同步消息传递在这种情况下使用,当消息发送者希望在某个时间范围内收到响应,然后再进行下一个任务。基本上就是他在收到响应前一直处于“阻塞”状态。 2.异步消息传递 异步消息意味着发送者并不要求立即收到响应,而且转载 2017-04-25 21:44:52 · 1297 阅读 · 0 评论 -
ubuntu桌面,窗口,终端快捷键+怎么设置快捷键
桌面操作Ctrl + Alt + L 锁定桌面并启动屏幕保护程序 Win + D 显示桌面 有的可能是Ctrl + Alt + DAlt + Tab 在不同程序窗口间切换 Ctrl + Win + →/← 在不同工作台间切换 Ctrl + Alt + →/← 截屏 自己设置(最后转载 2017-08-22 10:16:24 · 666 阅读 · 0 评论 -
Shell学习总结之逻辑运算符及表达式
一. 运算符总结说明1. 条件运算符运算符号代表意义应用说明=等于整型或字符串比较: str1 = str2字符串str1 和字符串str2 相等时返回真,如果在[]中,只能是字符串==等于整型或字符串比较: str1 == str2字符串str1 和字符串str2 相等时返回真,如果在[]中,转载 2017-08-22 10:57:02 · 353 阅读 · 0 评论 -
Linux 系统资源展板
https://github.com/firehol/netdata转载 2017-11-07 11:14:14 · 258 阅读 · 0 评论 -
Linux 查看文件或文件夹大小
du -s原创 2017-11-24 17:51:08 · 313 阅读 · 0 评论 -
Https单向认证和双向认证
一、HttpHyperText Transfer Protocol,超文本传输协议,是互联网上使用最广泛的一种协议,所有WWW文件必须遵循的标准。HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全。使用TCP端口为:80二、HttpsHyper Text Transfer Protocol over Secure Socke转载 2017-04-16 23:26:52 · 386 阅读 · 0 评论 -
sscanf 其实很强大
最近在做日志分析,linux C 的开发环境,在对每行日志进行处理的时候,手下一个小伙用的是逐字节拆分成字段。 刚开始没注意,后来每天10几G的日志上来后,发现除了速度特别慢以外,还经常出问题,遇到错误格式的日志就直接崩溃。。。 拿过来帮他改的时候,觉得这里完全可以用sscanf来进行处理,于是google+man 以及半天的测试以后,终于找到了一个比较合理的格式字转载 2017-04-16 23:17:21 · 4148 阅读 · 0 评论 -
socket accept后的fd是否占用新端口
今天小组讨论了下自动化部署的架构与实现。在讨论推送配置的时候,我发现了一个问题,这也让我知道了我以前一直忽略的一个东西。很多人socket编程很熟悉,但是能知道下面细节的人就不是那么多了。以前就想读tcp ip协议详解,可惜那时候的功力还没到,看来等有时间还是得细细品读。大家都很熟悉,在server端编程,首先得创建一个socket并bind一个地址,然后进行listen和转载 2017-04-06 18:46:50 · 2291 阅读 · 1 评论 -
Linux函数之select()
阻塞方式block,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回。使用Select就可以完成非阻塞non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,如果事件发生则与阻塞方式相同,若事件没有发生则返回一个代码来告知事件未发生,而进程或线程继续执行,所以效率较高。s转载 2017-03-02 09:30:59 · 270 阅读 · 0 评论 -
tcpdump使用总结
tcpdump是Linux下自带的网络分析工具。可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump主要选项类型host, net, port方向src, dst, src or dst, src and dst协议ip, tcp, udp, arp, rarp, eth转载 2017-03-02 09:37:34 · 397 阅读 · 0 评论 -
Linux下gcc生成和使用静态库和动态库详解
一、基本概念1.1什么是库在windows平台和Linux平台下都大量存在着库。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。 本文仅限于介绍linux下的库。1.2库的种类linux下的库有两种:静态库和共享库(动态库)。 二者的不同点在于代码被转载 2017-02-23 13:33:53 · 1017 阅读 · 0 评论 -
linux下 C语言perror函数的作用
头文件 #include #include//注意 不可以掉了这个头文件,perror是包含在这个文件里的//编辑本段perror表头文件完善版定义函数 void perror(const char *s); perror ("open_port");函数说明 perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因转载 2017-03-18 21:52:50 · 347 阅读 · 0 评论 -
strerror函数
1 题目测试strerror函数。2 代码:执行环境:VC++6.0#include #include #include void main() { int errnum; for(errnum = 1; errnum < 43; errnum++)转载 2017-03-18 21:54:32 · 629 阅读 · 0 评论 -
细谈select函数(C语言)
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式转载 2017-04-10 00:55:03 · 393 阅读 · 0 评论 -
SSH常用命令选项
使用 SSH提供了许多可使用的选项。这篇文章会介绍一些我们在日常操作中经常使用的选项。1. 无选项参数运行 SSH通常使用 SSH 的方式就是不加任何选项参数,仅仅输入 "ssh"。下面是示例:$ ssh 192.168.0.103第一次连接目标主机时,ssh 会让你确认目标主机的真实性。如果你回答的是 NO,SSH 将不会继续连接,只有回答 Yes转载 2017-04-11 21:09:08 · 1063 阅读 · 0 评论 -
事件库之Libev(一)
使用LibevLibev的作者写了一份很好的官方Manual,比较的齐全,即介绍了Libev的设计思想,也介绍了基本使用还包括内部各类事件详细介绍。这里略微赘述一下。Libev通过一个 ·struct ev_loop· 结结构表示一个事件驱动的框架。在这个框架里面通过ev_xxx结构,ev_init、ev_xxx_set、ev_xxx_start接口箱这个事件驱动的框架里面注册事件监控器,当相转载 2017-04-11 21:46:24 · 357 阅读 · 0 评论 -
同网段和不同网段设备通信原理详解
在当今的以太网络通信中,在IP数据包中有两个必不可少的地址,那就是IP地址和网卡地址(即MAC地址),在数据包中,无论是IP地址还是MAC地址,都有源地址和目标地址,因为通信是双方的,所以就必须同时拥有双方的地址!在同一IP网络中通信,将会发生以下事件: 主机A与主机B通信,这时主机A肯定首先要封装这些需要发给主机B的数据包,那么对于主机A来说,自己的IP地址和MAC自己肯定能够轻易得到,对于主机转载 2017-04-12 20:40:07 · 2892 阅读 · 0 评论 -
Linux中使用diff生成补丁与用patch打补丁
在Linux系统编程中,经常会用到diff与patch生成补丁与打补丁,原来对这方面不了解,也就觉得难,做过之后发现并没有什么。1、使用diff生成补丁;diff是Linux下的文件比较命令,参数这里就不说了,直接man一下就行了,不仅可以比较文件,也可以比较两个目录,并且可以将不同之处生成补丁文件,其实就是一种打补丁的命令。使用方法如下: diff-rNu路径1/旧文件转载 2017-04-06 16:04:43 · 822 阅读 · 0 评论 -
一次完整的HTTP事务是怎样一个过程?
当我们在浏览器的地址栏输入 www.linux178.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢?以下过程仅是个人理解:域名解析 –> 发起TCP的3次握手 –> 建立TCP连接后发起http请求 –> 服务器响应http请求,浏览器得到html代码 –> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) –> 浏览器对页面进行渲染呈现给用户关于HTTP协转载 2017-04-29 11:50:11 · 619 阅读 · 0 评论 -
Socket之shutdown()用法
通常来说,socket是双向的,即数据是双向通信的。但有些时候,你会想在socket上实现单向的socket,即数据往一个方向传输。单向的socket便称为半开放Socket。要实现半开放式,需要用到shutdown()函数。一般来说,半开放socket适用于以下场合:(1)当你想要确保所有写好的数据已经发送成功时。如果在发送数据的过程中,网络意外断开或者出现异转载 2017-04-06 18:45:30 · 889 阅读 · 0 评论 -
linux线程资源回收方法
在写网络服务器程序时可能需要实现多线程接收多个客户端的数据,我实现方式比较傻,死循环等待client的connect,connect之后创建thread,这样其实有一个问题,服务器程序需要长期运行,长时间线程的创建,线程资源的回收就是一个问题。Linux系统中程序的线程资源是有限的,表现为对于一个程序其能同时运行的线程数是有限的。而默认的条件下,一个线程结束后,其对应的资源不会被释放,于是,如果在一转载 2017-12-17 22:16:02 · 364 阅读 · 0 评论