
Linux
文章平均质量分 81
mac_timmy
这个作者很懒,什么都没留下…
展开
-
网络编程基础-简单的TCP回显程序(多进程和多线程版本)
这篇文章是对于上一篇文章的单进程版本的优化。不过这里采用的是回显方式,不是阻塞式聊天。客户端使用的同一个客户端代码。客户端代码多进程服务器端#include <stdio.h>#include <stdlib.h>#include <string.h>#include <strings.原创 2018-08-03 11:46:51 · 423 阅读 · 2 评论 -
高级I/O中多路转接之epoll
在介绍epoll之前,先说说poll。我们都知道,select通过固定的参数位置加输入输出型参数来进行数据的传递。这样做就有一个很大的缺陷,操作麻烦。用户自己还需要创建一个新的数组,将进行监听的源数据保留下来。同时还有一个硬伤,就是select监听的fd是有上限的,这个上限只能通过修改内核的属性来实现增强。如果我们的服务器业务很大的话,就会发现select不够用。所以有后来出现了poll,po...原创 2018-08-10 11:19:29 · 414 阅读 · 0 评论 -
网络层解析
网络层提供的服务网络层的任务是将多个网络通过路由器互连成一个互连网络,让网络中的多台计算机可以互相通信。其中网络层最重要的协议是IP协议。网络的特点是:向上提供简单灵活的、无连接的、尽最大努力交付的数据包服务。IP协议IP数据报头格式IP地址的分类IP地址和硬件地址地址解析协议ARP划分子网网际控制报文ICMP路由选择IP...原创 2018-08-06 10:03:11 · 1669 阅读 · 0 评论 -
HTTP协议解析-实现超简单的多线程版本HTTP服务器
http协议是一个应用层的协议,https是一个安全性更高的协议。本文讲述http协议的报头、报头属性以及实现一个简单的http服务器。url在认识http之前,我们有必要认识url。url就是我们常说的网址。...原创 2018-08-03 23:07:25 · 2282 阅读 · 0 评论 -
Linux中dup函数和dup2函数
个人博客传送门Linux 中进行文件描述符的重定向可以使用两个函数:dup函数和dup2函数,其中还有一个dup3函数,但是这个是Linux后面版本添加的,不是所有的Linux内核都支持,在这里不讨论。在Linux系统中约定文件描述符 0、1、2 对应标准输入、标准输出、标准错误,默认开启。dup()#include <unistd.h>int dup(int f...原创 2018-07-22 15:50:00 · 882 阅读 · 0 评论 -
网络编程基础-简单的TCP阻塞式网络聊天应用(单进程版本)
本程序使用的TCP协议,该协议是面向连接、通过字节流进行通信的。实现了客户端和服务器端的阻塞式通信。主要锻炼了对于socket API的使用。程序使用的函数其中socket、bind、地址转换函数在网络基础编程-UDP为例已经分析过。这里介绍的函数适用于TCP这类面向连接的协议。listen当我们的网络程序需要使用TCP面向连接一类的协议的时候,socket中选用了SOCK_S...原创 2018-07-30 15:51:51 · 478 阅读 · 0 评论 -
网络编程基础-UDP为例
本文只是基于认识的讲述网络编程基础。基础认识认识IPIP地址是在IP协议中用来表示网络中不同的主机的地址IPv4是4个字节,32位;IPv6是16个字节,128位。目前通用的是IPv4。通常用点分十进制来的字符串来表示IP地址。例如常见的192.168.1.1,每一个点分隔一个字节,范围是0~255理解源IP地址和目的IP地址:源IP地址是发送端的IP地址,目的IP地址...原创 2018-07-24 16:41:40 · 648 阅读 · 0 评论 -
解决VMware 12安装VMware Tools后共享文件夹不出现的问题
个人博客传送门 VMware Workstation Pro 12.0中centos 7安装VMware Tools的时候,发现安装完成,在/mnt/hgfs/目录下,没有自己显示与windows共享的文件夹。可以通过以下步骤修复。一:升级VMware为14版本,问题解决二:通过修改VMware Tools的文件解决问题。安装VMware-Workstation-Pro 12.0...原创 2018-04-24 13:42:36 · 4437 阅读 · 0 评论 -
Linux下简易彩色进度条
个人博客传送门前言在Linux下安装文件的时候,都会有个进度条来提示我们安装的进度是多少。这里我们模拟输出这个进度条。主要用到输出函数的操作、缓冲区的刷新、usleep函数、linux终端颜色的显示等知识。 效果如下: 铺垫知识点缓冲区 缓冲区分位三种:无缓冲,行缓冲,全缓冲。 无缓冲:没有缓冲,也就是信息在输入输出的时候,立马输入或输出。典型的代表就是标准错误流std...原创 2018-03-19 21:16:55 · 345 阅读 · 0 评论 -
查看Linux系统版本信息
个人博客传送门查看内核版本cat /proc/version uname -a 查看系统版本cat /etc/redhat-release lsb_release -a这个命令需要安装,安装命令: yum install lsb -y cat /etc/issue 都说可以,这个我的查出来很奇怪 rpm -q centos-release ...原创 2018-03-08 20:47:03 · 1364 阅读 · 0 评论 -
Linux中时间的设置
个人博客传送门test: CentOS Linux release 7.4.1708 (Core)查看时区 date -R +0800 表示在东八区 其中: CST:中国标准时间(China Standard Time),这个解释可能是针对RedHat Linux。 UTC:协调世界时,又称世界标准时间,简称UTC,从英文国际时间/法文协调时间”Universal...原创 2018-03-08 20:42:13 · 7095 阅读 · 3 评论 -
Liunx目录的权限
对于普通文件来说,文件权限分别是: 但是对于目录文件来说: 以下,通过创建一个目录并修改其拥有不同的权限来解释。1)创建一个practice的目录,并查看其拥有者的权限。普通用户创建的目录文件拥有775 的权限。 用root 用户创建的目录文件拥有755 的权限。 2)在practice 中创建一个叫 first的文件,一个叫 second 的目录。 firs...原创 2017-12-03 13:51:54 · 471 阅读 · 0 评论 -
高级I/O中多路转接-select
我们都知道I/O的速度很慢,电脑的瓶颈很大一部分就在磁盘I/O速度跟不上CPU的处理速度。I/O的部分其实分为两部分,第一步是等待,就是等待数据到来的时候;第二步是数据拷贝。通常来说等待的时间占大头,为了提高I/O的效率就需要减少等待的时间。五种I/O模型阻塞I/O:这是最常见的I/O方式,在内核将数据准备好之前,系统调用会一直处于等待状态。网络套接字的默认方式都是阻塞方式。非阻塞I/...原创 2018-08-08 16:41:43 · 476 阅读 · 0 评论