- 博客(16)
- 资源 (11)
- 论坛 (1)
- 收藏
- 关注
原创 Linux下套接字详解(五)----基于fork多进程的TCP套接字(阻塞/同步/并发)
简介一个简单的改进方案是在服务器端使用多线程(或多进程)。多线程(或多进程)的目的是让每个连接都拥有独立的线程(或进程),这样任何一个连接的阻塞都不会影响其他的连接。具体使用多进程还是多线程,并没有一个特定的模式。传统意义上,进程的开销要远远大于线程,所以如果需要同时为较多的客户机提供服务,则不推荐使用多进程;如果单个服务执行体需要消耗较多的CPU资源,譬如需要进行大规模或长时间的数据运算或文件访问
2016-01-31 16:44:17
4384
原创 Linux下套接字详解(三)----几种套接字I/O模型
参考: 网络编程–IO模型示例 几种服务器端IO模型的简单介绍及实现 网络编程–IO模型示例背景知识阻塞和非阻塞对于一个套接字的 I/O通信,它会涉及到两个系统对象,一个是调用这个IO的进程或者线程,另一个就是系统内核。比如当一个读操作发生时,它会经历两个阶段: ①等待数据准备 (Waiting for the data to be ready) ②将数据从内核拷贝到
2016-01-31 16:30:30
8746
1
原创 QT中实现程序只运行一个实例--应用程序的单例化
起因最近想实现一个应用程序单例化的程序, 目前使QT运行一个实例有如下几种方式 1.QSharedMemory 使用共享内存,当第二个进程启动时,判断内存区数据是否建立,如有,则退出; 这种方式有弊端,在程序发生崩溃时,未及时清除共享区数据,导致程序不能正常启动. 2.文件锁 在程序运行的时候就在目录下创建一个文件,当程序运行时就判断这个
2016-01-31 13:58:04
11838
1
原创 C/C++log日志库比较
事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx)。C程序员都喜欢用自己的轮子。printf就是个挺好的轮子,但没办法通过配置改变日志的格式或者输出文件。syslog是个系统级别的轮子,不过速度慢,而且功能比较单调。尝试了几种C/C++ log库,简单记录如下:log4j的衍生品日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是
2016-01-28 23:21:24
48577
11
原创 LeetCode题解--1. Two Sum(和为S的两个数字)
题目地址https://leetcode.com/problems/two-sum/描述给定一个整数数组,找出其中两个数满足相加等于你指定的目标数字。要求:这个函数twoSum必须要返回能够相加等于目标数字的两个数的索引,且index1必须要小于index2。请注意一点,你返回的结果(包括index1和index2)都不是基于0开始的,即自1开始你可以假设每一个输入肯定只有一个结果。 举例:
2016-01-27 22:32:25
10966
原创 git教程(三)--创建项目并提交更新
我们使用git就是为了更方便的管理我们的项目,更好的进行版本控制。 那么首先我们就要有一个项目,在github上如何创建项目呢?如何创建项目登陆你的Github账户,点击上方导航栏的“+”按钮,在下方选择“New repository”Github如何创建项目仓库进入到创建项目页面,按照下图所示输入你要创建项目的信息Github如何创建项目仓库最后点击“create repositoty”,就会
2016-01-27 17:53:43
2595
原创 git教程(二)--安装和配置git
主页http://git-scm.com/ 项目https://github.com/git/git 前言GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提
2016-01-27 15:53:22
4297
原创 Pillow-PIL的完全Fok替代库--完美解决报错The _imagingft C module is not installed的解决方案
问题在学习PIL(Python Image Library),由于代码里用到了PIL库处理验证码。 出现可著名的The _imagingft C module is not installed原因解析原因是因为没有安装对应的图片和处理字体的包 解决办法就是先卸载PIL的包,然后安装需要的库,接着重装PILlinux下的解决办法linux下还是比较好解决的 卸载PILpip uninstall
2016-01-26 14:51:21
9064
原创 Centos5.x/Linux下升级python到python2.7版本教程
起因实验室的服务器centos还是5.11版本,python版本竟然是2.4, 这几天想写点实验跑跑,但是这版本有点不爽,因此今天给python升了下级 升级到目前位置Python2的最新版本是2.7.11下载python源码首先到官网下载python2.7.11版本,然后编译安装即可 wget http://www.python.org/ftp/python/2.7.3/Python-2.7
2016-01-26 14:43:25
4495
原创 如何在.net4.0中使用.net4.5的async/await实现异步
async/await异步功能简介从4.0版本开始.NET引入并行编程库,用户能够通过这个库快捷的开发并行计算和并行任务处理的程序。在4.5版本中.NET又引入了Async和Await两个新的关键字,在语言层面对并行编程给予进一步的支持,使得用户能以一种简洁直观的方式实现并行编程。因为在很多文档里针对Async和Await这两个关键字的使用都被称为异步编程,为了更符合大众的阅读习惯,我们使用异步编程
2016-01-23 23:21:34
13188
5
原创 Linux系统查看系统版本号的方法总结(包括Ubuntu,Redhat,CentOS)
lsb_release -aLSB是Linux Standard Base的缩写,是FSG(Free Standards Group)组织开发的LSB (Linux Standard Base)标准的一个命令,用来查看linux兼容性的发行版信息。lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。 这个命令适用于所有的linux,包括Red
2016-01-23 16:47:49
5450
原创 centos上如何yum安装git
安装git出错这几天玩了下实验室的云服务器,感觉性能还可以,但是很多软件包没有安装啊,因此今天折腾了一下,但是安装git的时候出现问题。 我去,怎么会没有git包呢?应该是源没有安装吧。解决办法解决办法: 首先需要先添加EPEL(Extra Packages for Enterprise Linux) repository: 不同的版本添加源的地址是不同的 如果您不知道您的centos系统
2016-01-23 16:29:28
2380
原创 C#--SelectedIndexChanged事件, SelectedValueChanged事件和SelectionChangeCommitted事件的区别及联系
三个事件的触发条件SelectedIndexChanged事件索引改变时即触发吗,可以通过编程触发SelectedValueChanged事件值改变时触发,可以通过编程触发SelectionChangeCommitted事件在设定datasource和displaymember和valuemember时,以及手动改变combobox索引和值时都不触发该事件, 只是在界面选择combobox不同值时触
2016-01-22 21:49:14
11287
原创 Linux下errno错误信息对照
在库函数中有个errno变量,每个errno值对应着以字符串表示的错误类型。以下主要来自2.6.32的内核代码中的/usr/include/asm-generic/errno.h及errno-base.h,输出错误原因定义归纳整理如下,我们可以使用如下代码输出#include <string.h>#include <errno.h> /* for strerror */#include <st
2016-01-22 16:14:56
4394
原创 几款xshell绝佳配色方案
参照 XSHELL 绝佳配色方案, 保护你的眼睛配色方案Solarized Dark暗色版[Solarized Dark]text=839496cyan(bold)=93a1a1text(bold)=408080magenta=dd3682green=859900green(bold)=586e75background=042028cyan=2aa198red(bold)=cb4
2016-01-19 12:58:53
44370
原创 解决vim E492: Not an editor command: ^M
问题描述今天修改了一下实验室服务器的vim配置文件,直接将windows下的vim配置文件_vimrc拷贝到了服务器上,重命令为.vimrc,本指望实现共用配置文件。但在启动vim时却报了Not an editor command: ^M的错误。vim E492: Not an editor command: ^M问题解析而*nix的文件换行符为\n,但windows却非要把\r\n作为换行符,所以
2016-01-19 12:21:20
34317
3
2410-S实验指导书@2006.11.pdf
2014-03-27
tftp烧写2410-s linux系统.pdf
2014-03-27
s3c-2410快速开始手册
2014-03-27
JeanCheng的留言板
发表于 2020-01-02 最后回复 2020-01-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝