linux
时间溜走了
学无止境
展开
-
生成的密钥对进行加解密、签名和效验
生成对应的私钥和公钥#include<iostream>#include<openssl/sha.h>#include<openssl/rsa.h>#include<openssl/pem.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<string>extern "C"{ // #include<原创 2021-07-04 14:15:23 · 262 阅读 · 0 评论 -
网络通信防止connect,accept,rend,write阻塞设置超时处理
为了防止connect,accept,rend,write阻塞在哪影响效率问题,我们设置一个认可超时时间处理,通过调用系统内核函数帮我检查读写缓冲区是个有数据可读,分析场景: 内核去维护一个双向读写缓冲区 类似乳滑动窗口,.发送端快速发送消息到到接收端,而接收端处理消息不及时,故接收端内核读缓冲区快满了,此时发送端send就会阻塞,read读超时设置:int readTimeOut(int cfd, int timeOut ){ //我们不知道内核的读缓冲区是否有数据到达,所有我们委托内核原创 2021-07-02 15:32:46 · 1422 阅读 · 0 评论 -
Tcp流式传输解决粘包和少包的方案
tcp是流式传输协议,接收端和发送端的 收发时间延时,此时会出现粘包现象。比如:再不考虑内核双向缓冲区的延时发送问题,客户端假设1s 发送100k,循环发,服务器每2s收一次数据,此时服务器收到了200k,出现了消息粘包,服务器也不知道客户端的消息分组情况,所以我们需要和客户端协商一个解决方案,类型tcp底层封装思想一下定义为 消息头和消息体:下面伪代码展示一下:发送端:void sendMsg(int fd, char* sendData){ /*这里的sendData数据体他是字符串形式的原创 2021-07-02 11:19:36 · 413 阅读 · 0 评论 -
Linux线程同步条件变量实现的线程池
1.设计思路:通过线程池来管理线程,有任务的到达唤醒线程,没用任务睡眠线程,这样减小线程的创建开销,从而进行重复利用,类似于经典的消费模式 生产者和消费者,在对任务进行添加和处理的时候,防止线程之间资源争夺,让线程同步,引入线程锁,和条件变量#ifndef _THREADPOOL_H#define _THREADPOOL_H#include <stdio.h>#include <stdlib.h>#include <string.h>#include <原创 2021-06-29 00:25:07 · 125 阅读 · 0 评论 -
libevent网络框架学习
//client.c#include<stdlib.h>#include<stdio.h>#include<unistd.h>#include<string.h>#include<fcntl.h>#include<sys/stat.h>#include<event2/event.h>#include<event2/bufferevent.h>char buf[1024];void read.原创 2021-06-12 17:25:48 · 212 阅读 · 1 评论 -
初识Linux下epoll网络通信
#ifndef _WIN32#include<unistd.h> //uni std#include<arpa/inet.h>#include<string.h>#include<sys/epoll.h>#endif#define SOCKET int#define INVALID_SOCKET (SOCKET)(~0)#define SOCKET_ERROR (-1)#include<stdio.h&.原创 2020-06-16 19:07:55 · 183 阅读 · 0 评论 -
详细讲解NFS配置过程
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 NFS最早是由Sun公司发展出来的, 简单的来说:它就是是可以透过网络,让不同的主机、不同的操作系统可以共享存储。以下是NFS最...转载 2018-05-08 19:50:26 · 508 阅读 · 0 评论 -
Linux下的python安装
pip3 install ipython原创 2018-05-09 12:32:15 · 303 阅读 · 0 评论 -
Linux网络编程之tcp/ip编程
客户端语服务端进行通信原创 2017-08-29 09:31:19 · 540 阅读 · 1 评论 -
论fork()函数与Linux中的多线程编程
转载请说明出处:http://blog.csdn.net/cywosp/article/details/27316803一、fork()函数 在操作系统的基本概念中进程是程序的一次执行,且是拥有资源的最小单位和调度单位(在引入线程的操作系统中,线程是最小的调度单位)。在Linux系统中创建进程有两种方式:一是由操作系统创建,二是由父进程创建进程(通常为子进程)。系转载 2017-08-31 11:09:54 · 177 阅读 · 0 评论 -
gcc的静态库和动态库创建和使用
静态编译的写法: gcc -o test -static test.c库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。 例如:libtest.so libtest.a。为了在同一系统中使用不同版本的库,可以在库文件名后加上版本号为后缀,但由于程序连接默认以.so为文件后缀名。所以为了使用这些库,通常使用建立符号连接的方式。如:原创 2017-08-31 10:35:01 · 363 阅读 · 0 评论 -
gcc/g++使用第三方库时添加头文件路径和库文件路径的方法
本文总结了使用第三方库函数时将其路径告诉编译器(gcc和g++同理)的2种常用方式,并举例说明了每种方式的具体用法。方法一:在编译自己的项目时添加-L和-I编译选项1)添加头文件路径:-I #指明头文件的路径2)添加库文件路径:-L #指定目录。link的时候,去找的目录。gcc会先从-L指定的目录去找,然后才查找默认路径。(告诉gcc,-l库名最可能在这转载 2017-08-31 10:45:01 · 5291 阅读 · 0 评论 -
Linux网路编程网络基础之网络‘协议的概念
计算机联网的目的:协议:原创 2017-08-28 10:21:32 · 197 阅读 · 0 评论 -
virtualBox虚拟机网络设置(四种方式)
VirtualBox的提供了四种网络接入模式,它们分别是: 1、NAT 网络地址转换模式(NAT,Network Address Translation) 2、Bridged Adapter 桥接模式 3、Internal 内部网络模式 4、Host-only Adapter 主机模式 第一种 NAT模式 解释: NAT模式是最简单的实现虚拟机上网的方式,你可以这样原创 2017-08-28 13:46:56 · 469 阅读 · 0 评论 -
Linux中rz和sz命令用法
z,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。优点就是不用再开一个sftp工具登录上去上传下载文件。sz:将选定的文件发送(send)到本地机器rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器安装命令:yum install lrzsz从服务端发送文件到客户端:sz filen转载 2017-08-29 09:51:42 · 711 阅读 · 0 评论 -
FTP服务器的安装、配置、虚拟用户的创建
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。听起来好像很高上的样子,所以,我今天也在自己的服务器上搭了一个ftp服务器玩玩,现在,转载 2017-08-29 10:05:46 · 344 阅读 · 0 评论 -
shell命令行选项与修传入参数处理
本文介绍了bash shell命令行参数与命令行选项的操作方法,有关shell 命令行参数的实例教程,有需要的朋友参考下。在编写shell程序时经常需要处理命令行参数,本文描述在bash下的命令行处理方式。选项与参数:如下命令行: 代码如下:./test.sh -f config.conf -v --prefix=/home-f为选项,它需原创 2017-08-29 10:16:21 · 1880 阅读 · 0 评论 -
Vim配置重写脚本利于开发
在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号、语法高亮度显示、智能缩进等功能的。为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc。在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本,所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,即创建的命令为:$vi ~/.vimr原创 2017-08-29 14:03:57 · 325 阅读 · 0 评论 -
使用Samba实现Windows与Linux主机之间文件共享
samba是一种可以在Linux/Unix主机上模拟windows主机的NetBIOS和CIFS/SMB实现与windows主机之间文件共享的软件。只要linux主机安装了samba,windows端借助samba可以将linux主机共享的目录文件映射为本地磁盘,linux端也可以将windows主机共享的文件挂载为本地文件系统。 一、linux主机共享文件让windows端访问转载 2017-08-29 14:20:44 · 1612 阅读 · 0 评论 -
解决telnet无法连接 Connection refused )
标签: it 分类: linuxtelnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。 一、检测telnet-server的rpm包是否安装 OS:RedHat9 [root@locaho转载 2017-08-29 09:27:14 · 163859 阅读 · 1 评论 -
linux下如何使用sftp命令
from: http://www.cnblogs.com/chen1987lei/archive/2010/11/26/1888391.html20400sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作。举例,如远程主机的 IP 是 202.206.6转载 2017-08-30 01:25:03 · 1235 阅读 · 0 评论 -
linux下vim命令详解
高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的:1.正常模式 (Normal-mode)启动vim后默认处于正常模式。不论位于什么模式,按下键(有时需要按两下)都会进入正常模式。2.插入模式(Insert-mode)在正常模式中按下i, I, a, A等键(后面系列文章会详细介绍),会进入插入模式。现转载 2017-08-30 11:53:49 · 240 阅读 · 0 评论 -
Linux下网络编程之自定义协议进行并发多客户端与服务器的通信(多进程处理并发)不足占用资源太多
自定义协议消息体#include #include #include #include #include #include #include #include "msg.h"/*计算校验码*/static unsigned char msg_check(Msg* message){ //将头部和体部进行累加 unsigned char s = 0; int i原创 2017-09-01 00:17:43 · 920 阅读 · 0 评论