
Linux
文章平均质量分 73
逆風的薔薇
这个作者很懒,什么都没留下…
展开
-
linux下C++的多线程编程
1、 引言线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。为什么有了进程的概念后,还要再引入线转载 2014-05-01 15:02:20 · 1260 阅读 · 0 评论 -
Ubuntu 15 下 Qt 配置mysql链接及基本操作
序最近需要在Linux下做一个unix网络编程项目,选择了Ubuntu 最新版本15.04 : 开发环境:Qt 5 数据库: MySQL安装Qt 和 MySQL简要介绍一下软件的安装!安装Qt命令sudo apt-get install qtcreator安装MySQL,我是采用的软件中心选择的开发工具 包括 服务器、客户端、工作台三个软件;然后,在命令行配置root账户密码即可!安装My原创 2015-11-12 11:24:10 · 1178 阅读 · 0 评论 -
Ubuntu 15.04 安装配置 Qt + SQLite3
序最近需要在Ubuntu下使用Qt开发项目,选择简单小巧的SQLite数据库,现将安装配置以及简单操作记录如下,以便日后查阅。安装QtCMake和Qt Creator是Linux下开发C++程序的神器,Ubuntu 15.04已经集成了最新版的Qt Creator (3.1.1)。sudo apt-get install cmake qtcreator 安装Sqlite1 . 安装SQLite3s原创 2015-11-18 10:21:02 · 3722 阅读 · 0 评论 -
命令行执行Qt程序
原文网址//helloworld.cpp#include <QApplication>#include <QPushButton>int main(int argc,char *argv[]){ QApplication app(argc,argv); QPushButton btn("hello world!"); btn.show(); QObject::c转载 2015-11-18 19:23:00 · 3243 阅读 · 0 评论 -
基本套接字编程(5) -- epoll篇
1. epoll技术原创 2015-12-23 17:40:05 · 1479 阅读 · 0 评论 -
基本套接字编程(7) -- udp篇
1. UDP概述UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。UDP协议全称是用户数据报协议 ,在网络中它与TCP协议原创 2015-12-28 11:41:15 · 1583 阅读 · 0 评论 -
基本套接字编程(1) -- tcp篇
Socket简介Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。(2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通原创 2015-12-23 15:24:50 · 13210 阅读 · 7 评论 -
基本套接字编程(2) -- I/O模型篇
1. I/O模型简介最近一直在学习Unix网络编程,被Unix下各种I/O模型搞得头昏脑涨,结合《Unix网络编程 - 卷一》第六章 并参考了网上各牛们的分析,稍稍厘清了一些。因此记录下来,方便以后复习!原创 2015-12-23 16:51:48 · 926 阅读 · 0 评论 -
基本套接字编程(6) -- 线程篇
1. 线程传统Unix模型中,当一个进程需要另一个实体来完成某事,它就fork一个子进程来处理。Unix上大多数网络服务器程序便是以创建多个子进程的方式实现的:父进程accept一个连接,fork一个子进程,该子进程处理与该连接对端的客户之间的通信。尽管,这种范式多年来一直用的不错,但是fork调用依然存在一些问题:(1)fork是昂贵的,fork要把父进程的内存影像复制到子进程,并在原创 2015-12-23 19:43:48 · 962 阅读 · 0 评论 -
基本套接字编程(3) -- select篇
1. I/O复用我们学习了I/o复用的基本知识,了解到目前支持I/O复用的系统调用有select、pselect、poll、epoll。而epoll技术以其独特的优势被越来越多的应用到各大企业服务器。(后面将有poll & epoll单独学习笔记)基本概念IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:原创 2015-12-23 17:15:54 · 3452 阅读 · 0 评论 -
基本套接字编程(4) -- poll篇
1. poll技术原创 2015-12-23 17:39:10 · 1242 阅读 · 0 评论 -
Linux聊天室项目 -- ChatRome(select实现)
序项目简介:采用I/O复用技术select实现socket通信,采用多线程负责每个客户操作处理,完成Linux下的多客户聊天室!OS:Ubuntu 15.04IDE:vim gcc makeDB:Sqlite 3Time:2015-12-09 ~ 2012-12-21项目功能架构:采用client/server结构;给出客户操作主界面(注册、登录、帮助和退出)、登录后主界面(查看在线列表、私聊、原创 2015-12-22 11:39:08 · 6523 阅读 · 19 评论 -
DDoS攻击 TCP UDP ICMP
从07年的爱沙尼亚DDOS信息战,到今年广西南宁30个网吧遭受到DDOS勒索,再到新浪网遭受DDOS攻击无法提供对外服务500多分钟。 DDOS愈演愈烈,攻击事件明显增多,攻击流量也明显增大,形势十分严峻,超过1G的攻击流量频频出现,CNCERT/CC掌握的数据表明,最高时达到了 12G,这样流量,甚至连专业的机房都无法抵挡。更为严峻的是:利用DDOS攻击手段敲诈勒索已经形成了一条完整的产业链!并转载 2016-03-11 21:00:37 · 13834 阅读 · 1 评论 -
进程间通信与线程间通信
序今天被问及进程间通信的问题,发现自己了解的并不够,所以,对此好好总结一番~操作系统的主要任务是管理计算机的软件、硬件资源。现代操作系统的主要特点是多用户和多任务,也就是程序的并行执行,windows如此linux也是如此。所以操作系统就借助于进程来管理计算机的软、硬件资源,支持多任务的并行执行。要并行执行就需要多进程、多线程。因此多进程和多线程间为了完成一定的任务,就需要进行一定的通信。原创 2016-03-24 11:38:06 · 8215 阅读 · 0 评论 -
Ubuntu15 安装Pycharm
一、目标实现在Linux下用pycharm调试工具/Python开发 Linux使用vi/vim工具写Python,缺点:调试不方便,无代码提示、跳转等诸多功能。Windows使用idle/pycharm/eclipse等,环境包安装麻烦。写好的代码往往也得迁移至Linux服务器环境。解决办法:直接在Linux环境下安装pycharm编译器。 附:a转载 2016-06-02 20:05:40 · 2635 阅读 · 0 评论 -
常用正则表达式
常用正则表达式正则表达式中有很多上述的具有特别意义的字符。首先是下列字符。[ ]范围描述符。[a-z]表示从a到z之间的任意一个。\w英文字母和数字。即[0-9 A-Z a-z]。\W非英文字母和数字\s空字符,即[\t\n\r\f]。\S非空字符。\d数字,即[0-9]。\D非数字。\b词边界字符(在范围描述符外部时)\B非词边界字符\b退格符(0x08)(在转载 2016-05-23 17:02:41 · 528 阅读 · 0 评论 -
LINUX环境并发服务器的三种实现模型
服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器。按处理方式来分有循环服务器和并发服务器。1 循环服务器与并发服务器模型在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。目前最常用的服务器模型有:·循环服务器:服务器在同一时刻只能响应一个客户端的请求·并发服务器:服务器在同一时刻可以响应多个客户端的请求转载 2016-07-22 15:56:01 · 623 阅读 · 0 评论 -
CentOS 7 配置OpenCL环境(安装NVIDIA cuda sdk、Cmake、Eclipse CDT)
序最近需要在Linux下进行一个OpenCL开发的项目,现将开发环境的配置过程记录如下,方便查阅。完整的环境配置需要以下几个部分:安装一个OpenCL实现,基于硬件,选择NVIDIA CUDA SDK (英伟达的显卡OpenCL是被包含在CUDA SDK内的);安装Cmake项目生成工具(这个是可选的,我用它进行源码到项目的逆变换);集成开发环境,选择Eclipse CDT安装OpenCL实原创 2015-11-13 11:22:47 · 7834 阅读 · 0 评论 -
linux下如何编译运行c程序
GCC是Linux操作系统下一个非常重要的源代码编译工具,有着许多重要的选项,支持许多不同语言的编译,如C、C++、Ada、Fortran、Objective、Perl、Python、Ruby以及Java等,甚至Linux的许多内核和许多其他自由软件以及开放源码应用程序都是用C语言编写并经gcc编译而成的. 1.编译单个源文件 [例如]在屏幕上打印"Hello,Linu转载 2014-05-01 13:57:40 · 1103 阅读 · 0 评论 -
cygin常用命令
基本操作命令:---------------------------------------------------------------------- ---------------------------------------------------------------------- ls #以默认方式显示当前目录文件列表ls –a #显示所有文件包括隐藏文件ls转载 2014-04-20 17:11:47 · 1818 阅读 · 0 评论 -
Linux GCC常用命令
Linux GCC常用命令1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而转载 2014-04-20 17:07:56 · 878 阅读 · 0 评论 -
Linux磁盘与文件系统管理 之 认识EXT2系统
1 磁盘组成与分区(1)圆形盘片—记录数据(2)机械手臂及磁头—读写盘片数据(3)主轴马达—使得机械手臂成功读写数据驱动原创 2015-05-07 20:39:07 · 2000 阅读 · 1 评论 -
菜鸟的《Linux程序设计》学习——MySQL数据库安装、配置及基本操作
MySQL数据库:在涉及到一些大型的Web系统或者嵌入式软件的开发时,都少不了用数据库来管理数据。在Windows操作系统下,使用过各种各样的数据库,如:sqlServer、Oracle、MySQL等等,我们知道,在Windows系统上的软件安装配置都是界面式,操作明显而简捷。那么在Linux操作系统上,对于数据库的选用,好像首推的是MySQL,它是一个关系型数据库管理系统,由瑞典My原创 2015-05-13 15:01:31 · 1174 阅读 · 0 评论 -
菜鸟的《Linux程序设计》学习—shell script
1. 认识shell scriptshell script是利用shell的功能缩写的一个“程序”,这个程序是使用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面,搭配正则表达式,管道命令与数据流重定向等功能,以达到我们想要的处理目的。shell script有很广泛的应用:(1)自动化管理的重要依据(2)追踪与管理系统的重要工作(3)简单入侵检测功能原创 2015-05-14 16:43:48 · 1621 阅读 · 0 评论 -
Unix网络编程 — 头文件解析
1.1. < sys/types.h >primitive system data types(包含很多类型重定义,如pid_t、int8_t等)1.2. < sys/socket.h >//与套接字相关的函数声明和结构体定义,如socket()、bind()、connect()及struct sockaddr的定义等int setsockopt(int s,int level,int o转载 2015-08-31 17:28:56 · 1216 阅读 · 0 评论 -
gcc 编译多个源文件
序Linux 内核和许多其他自由软件以及开放源码应用程序都是用 C 语言编写并使用 GCC 编译的。编译C++程序编译、链接命令-c 只编译不里链接-o链接例:g++ file1 -c -o file1.og++ file2 -c -o file2.og++ file1.o file.o -o exec生成可执行文件exec即命令: //(1)分步骤依次编译、链接 g++ -c a.c转载 2015-09-09 11:31:38 · 3239 阅读 · 0 评论 -
Gdb调试命令
用GDB调试程序一GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要转载 2015-09-09 17:34:50 · 1043 阅读 · 0 评论 -
CentOS安装sctp协议
序最近学习Unix网络编程,在第10章节,SCTP客户/服务器 程序实现时,发现很多由于系统没有安装sctp协议,引发的bug;因此,现将在CentOS上的sctp安装记录如下:安装如图(1)使用命令yum list lksctp* 查看需要安装列表(2)使用yum install 包安装所有包 (3)如图所示,第一个包安装完成,此时再次显示安装包列表,可以看到: (4)第一个安装包为已安装原创 2015-09-11 17:06:48 · 7550 阅读 · 0 评论 -
Linux防火墙:iptables禁IP与解封IP常用命令
序在Linux服务器被攻击的时候,有的时候会有几个主力IP。如果能拒绝掉这几个IP的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了。在Linux下封停IP,有封杀网段和封杀单个IP两种形式。一般来说,现在的攻击者不会使用一个网段的IP来攻击(太招摇了),IP一般都是散列的。于是下面就详细说明一下封杀单个IP的命令,和解封单个IP的命令。 在Linux下,使用ipteables来维转载 2015-10-19 10:12:21 · 910 阅读 · 0 评论 -
Ubuntu 15.04 Qt5 链接 mysql数据库
序最近在Ubuntu15.04下做一个Linux-服务器-客户端通信项目,用到MySQL数据库。开始的时候,在数据库链接时遇到障碍,查找资料解决。特此记录,分享于此。环境配置系统:Ubuntu 15.04 IDE:QtCreator 数据库:MySQL (在软件中心,安装服务器端以及客户端) MySQL驱动:Qt5链接mysql最新驱动网址如果,刚安装了mysql并没有设置初始root密码,原创 2015-10-19 20:01:00 · 2095 阅读 · 0 评论 -
HUB、Switch、Router在OSI模型层次信息
序(HUB)集线器工作在局域网(LAN)环境,像网卡一样,应用于OSI参考模型第一层,因此又被称为物理层设备。 Switch交换机工作在OSI第2层数据链路层 Router路由器工作在OSI第3层网络层 OSI模型一共7层,1-7层分别是:物理层 数据链路层 网络层 传输层 会话层 表示层 应用层层次划分OSI将计算机网络体系结构(architecture)划分为以下七层:1、物理层:Phys转载 2015-10-21 11:24:24 · 2221 阅读 · 0 评论 -
MakeFile
序makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模块及库等).创建程序(make程序)首先读取makefile文件,然后再激活编译器,汇编器,资源编译器和连接器以便产生最后的输出,最后输出并生成的通常是可执行文件.创建程序利用内置的推理规则来激活编译器,以便通过对特定CPP文件的编译来产生特定的OBJ文件转载 2015-10-21 11:34:23 · 770 阅读 · 0 评论 -
Linux服务器硬件设备信息查看
一、cpu信息cpu信息存储在/proc文件系统的cpuinfo(/proc/cpuinfo)文件里,可以直接查看这个文件以获得cpu信息,所列字段解释如下:processor : 核心编号,如:0,1,2,3等。 vendor_id : 制造商id,如:GenuineIntel cpu family : cpu转载 2015-10-09 10:49:21 · 7224 阅读 · 0 评论 -
cmake命令 安装、用法简介
前言cmake是kitware公司以及一些开源开发者在开发几个工具套件(VTK)的过程中所产生的衍生品。后来经过发展,最终形成体系,在2001年成为一个独立的开放源代码项目。其官方网站是www.cmake.org,可以通过访问官方网站来获得更多关于cmake的信息,而且目前官方的英文文档比以前有了很大的改进,可以作为实践中的参考手册。cmake的流行离不开KDE4的选择。KDE开发者在使用autot转载 2015-11-13 11:46:41 · 38176 阅读 · 1 评论 -
三次握手的第三个ACK包丢了——客户端认为连接建立,写数据时,会触发RST
序上次面试被问到一个问题,在TCP建立连接的三次握手阶段,如果客户端发送的第三个ACK包丢了,那么客户端和服务器端分别进行什么处理?听到问题,一下愣掉,有点傻了,根据读书时模模糊糊的印象,答了答,无疑打错了T...T分析当Client端收到Server的SYN+ACK应答后,其状态变为ESTABLISHED,并发送ACK包给Server; 如转载 2016-09-17 15:40:53 · 5348 阅读 · 2 评论