Linux
无聊星期三
好好学习天天向上
展开
-
linux设置socket禁止IP包分片
背景UDP包在传输过程中,如果对端机器的MTU小于1500,结果你发出去的包其实加上乱七八糟的头,刚好1500,本来是能被对端机器收到的,结果好巧不巧,刚好这个机器发出去的包,默认不允许分包,结果包发出去全部被丢掉了。。。。。分包的标志位位于IP报头,有一个DF(Don’t Fragment)标志位,如果该标志为1,则禁止分包,就会导致MTU不是1500的机器,丢弃掉一些UDP包。如何设置允许分包直接设置IP_DONTFRAG可以实现int val = 0;setsockopt(sd, IPPR原创 2020-07-19 17:41:41 · 7054 阅读 · 3 评论 -
getsockname和getpeername第一次调用结果错误
使用场景在连接建立之后通过getsockname和getpeername进行获取地址和端口,发现出现无法获取正确结果,但在第一次调用的基础上,进行第二次调用,结果正确。解决方案要对getsockename和getpeername使用到的参数进行初始化,如下:struct sockaddr_in addr;socklen_t addrlen = sizeof(addr);getsockn...原创 2020-05-08 14:52:01 · 1035 阅读 · 0 评论 -
网络协议学习——TCP
TCP是个啥,看了这篇博客就知道,这篇博客中和大家一起学习TCP的概念,TCP连接流程和TCP服务端客户端的简单实现。原创 2018-10-19 20:54:25 · 719 阅读 · 0 评论 -
为什么TCP握手是三次挥手是四次?
为什么TCP连接是三次握手而不是两次或者四次???为什么断开连接是四次挥手而不是三次或者五次????这篇文章给你答案原创 2018-10-20 00:45:20 · 3278 阅读 · 0 评论 -
linux文件系统
linux下如何找到一个文件原创 2018-10-21 14:14:53 · 334 阅读 · 0 评论 -
线程学习(四):线程的同步
线程同步线程的同步条件变量条件变量配合互斥锁条件变量接口卖鸡腿代码线程的同步在线程中如果有一个资源他是有限的,比如超市里的鸡腿,卖光了就没了,必须要进货才能买,但是进货的途中你不能拿,中途拿了那不叫买,叫抢劫。所以在进货途中需要有人保护啊,这个时候互斥锁又来当保镖了,我进货的时候都老实点,全都不许动,要买等着,等我进了货你们再买,没了就等下一批鸡腿。上面那个例子就是线程同步,消费者只能等生...原创 2018-10-31 22:41:38 · 278 阅读 · 0 评论 -
Linux下的信号
信号的处理信号用户态和内核态信号是如何被处理的信号处理signal函数sigaction函数代码实现信号用户态和内核态在代码执行过程中经常会出现用户态和内核态之间的切换,我对用户态的理解就是我们平时写的代码大多都在用户态,比如for循环、创建变量等这些都是用户态下的。当我们调用read、write、alarm、fork等系统调用函数(read、write涉及到缓冲区的读写,fork则需要内...原创 2018-11-16 00:01:52 · 436 阅读 · 1 评论 -
高级IO的五种IO模型
高级IO的五种模型解析原创 2018-11-29 00:43:46 · 592 阅读 · 0 评论 -
线程池小结
简单用队列实现一下线程池原创 2019-01-26 14:02:35 · 325 阅读 · 0 评论 -
网络编程知识点
网络编程套接字什么是socket什么是socket网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。原创 2018-10-08 22:05:31 · 299 阅读 · 0 评论 -
线程学习(三):线程的互斥
线程同步与互斥生产者与消费者模型为什么需要线程同步和互斥线程互斥没有线程互斥会怎么样mutex(互斥量)线程同步生产者与消费者模型在讲同步和互斥之前,首先了解一下消费者模型什么是消费者模型?消费者模型是一个描述消费者和生产者之间的关系的一个模型,生产者和消费者模型指的是在一个场所中,两个角色,三种关系消费者和消费者之间——互斥消费者之间是竞争关系,比如有一个鸡腿,两个人A和B去买,A...原创 2018-10-01 18:34:16 · 800 阅读 · 0 评论 -
线程学习(一):线程概念及线程创建
线程概念什么是线程?在一个程序里的一个执行路线叫线程(thread),是程序执行流的最小单元一切进程至少拥有一个线程进程和线程的联系与区别进程进程是资源竞争的基本单位(操作系统分配资源的基本单位)进程又叫线程组,以前我们说的进程是只有一个线程的进程组现在引入线程概念后,进程可以理解为至少有一个线程的进程线程线程是程序执行的最小单位(CPU调度的一...原创 2018-09-13 22:04:35 · 321 阅读 · 0 评论 -
Linux命令(持续加入)
ls 显示当前目录下文件 ls -l 查看所有当前目录下文件的文件详细信息 ll (ls -l的别名) ls -a 显示当前文件夹所有的所有的文件,包括隐藏的 ls -al 显示所有文件并显示信息 cd .. 返回上一级 rm -r file_name 删除目录 rm file_name 删除文件 rm * 删除当前目录下所有文件原创 2017-12-09 23:49:46 · 260 阅读 · 0 评论 -
linux简单命令的练习
1、将之前所创建的目录和文件全部清理掉$ rm -rf2、在家目录下创建 ~/workspace/cmd 目录以及 ~/workspace/tmp/test 目录(什么是家目录?)$ mkdir -p ~/workspace/cmd$ mkdir -p ~/workspace/test3、进入 ~/workspace/cmd 目录,创建一个空文件my.txt$ cd ~/wo...原创 2018-08-14 20:24:14 · 606 阅读 · 0 评论 -
了解linux根目录内各个目录作用
linux根目录名称所有了解来自于鸟哥的私房菜,看书加上进入目录查看以了解目录作用 首先看一下都有哪些目录,然后一个一个进去了解 bin系统中有很多放置执行文件的目录,但/bin比较特殊,因为/bin目录下放置的是在单用户维护模式下还能被操作的命令。在/bin目录下的命令可以被root与一般账号所使用,主要有cat,chmod,chown,date,mv,mkdir,cp,bash...原创 2018-08-16 08:21:07 · 855 阅读 · 0 评论 -
linux中的进程
什么是进程进程就是一个正在执行的程序 从内核来看,进程是一个担当分配系统资源的实体,当程序被计算机执行,那么就可以称之为进程linux中的进程进程信息被放在一个叫做进程控制块的数据结构中,也就是PCB(process control block),PCB的本质是一个结构体,每一个进程都有一个PCB,当进程创建PCB就被创建,直至进程销毁。 linux中PCB叫做task_struc...原创 2018-08-19 23:13:18 · 361 阅读 · 0 评论 -
vim使用快捷键
模式切换:普通模式-》插入模式 i I a A o O s插入模式-》普通模式 Esc普通模式-》底行模式 :普通模式下的操作:dd 按行删除 ndd(n为数字)删除n行yy 按行复制 nyy(n为数字)复制n行p 粘贴dw 删除单词x 删除字...原创 2018-08-17 18:02:30 · 214 阅读 · 0 评论 -
写一个自己的shell
shell什么是shell? shell就像是在linux中的一个媒婆,我们给shell命令,shell来告诉系统我们需要做什么,为我们牵线,实现调用操作系统提供给我们的接口,shell提供了你与操作系统之间通讯的方式。 shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果。 下图中红圈的东西即s...原创 2018-09-04 15:47:25 · 4599 阅读 · 8 评论 -
系统IO和重定向
C库I/O函数复习系统调用I/O几个知识点文件描述符文件描述符如何分配文件留置针库函数和系统调用接口的关系进程如何通过一个数字来操作文件呢?openwritereadlseekC库I/O函数复习比较常用的几个C库函数有fopen()、fwrite()、fread()、fprintf()、fscanf()等,这里挑几个复习,其他函数可以查看man手册...原创 2018-09-08 23:01:28 · 398 阅读 · 0 评论 -
线程学习(二):线程终止、等待和分离
线程终止终止线程有三种方式终止在线程函数内return 线程内return相当于结束了线程运行的函数,退出了当前线程,但是注意主线程不能用此方法,主线程使用相当于main()函数执行结束,接着会调用exit(),终止了进程,进程内所有线程都会被强制退出线程可以调用pthread_exit终止自己 理论上说,其实在线程内return后,线程就会自动调用pthread_exit清理自己...原创 2018-09-16 11:55:40 · 635 阅读 · 0 评论 -
VIM显示如何行号
新装的linux一般打开vim都是没有显示行号的,而别人的vim每行前面都有行号,如何解决vim每行前面显示行号问题?原创 2017-12-08 23:47:30 · 360 阅读 · 0 评论