![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux网络编程
GreyBtfly王宝彤
业精于勤,荒于嬉;行成于思,毁于随
展开
-
linux socket解决客户端socket断开后, 服务器端进程退出的问题
最近做一个socket服务器时,发现如果强行关闭客户终端,server会接收到一些奇怪的信息然后非正常退出。原因:强行关闭客户终端后,client进程交付给初始进程。等初始进程查询到client后将它杀掉。但是在杀掉之前,由于关掉了终端(主要是关掉了输入缓冲区),导致本来阻塞中的cin或scanf返回EOF,程序得以继续执行send和recv操作。服务器发现client有消息传入,但是在尝试回...原创 2018-11-21 10:02:12 · 6215 阅读 · 0 评论 -
基于libco、socket、epoll的回射服务器简单练习(加入一个内存池)
约定:端口8001发送socket时先发送一段6字节的消息,表示接下来要发送多少字节的正文,服务器回应同理(这个机制看上去漏洞百出,好吧,蒟蒻先这么用着)client随便写一下就好了server(new.cpp):为了练习libco、epoll、socket,大概采用这么一个结构:主协程负责初始化和eventloop,有众多worker协程(个数由宏定义CoNumber限定...原创 2018-11-27 20:56:53 · 1173 阅读 · 0 评论 -
进程间传递描述符
每个进程都拥有自己独立的进程空间,这使得描述符在进程之间的传递变得有点复杂,这个属于高级进程间通信的内容,下面就来说说。Linux 下的描述符传递Linux 系统系下,子进程会自动继承父进程已打开的描述符,实际应用中,可能父进程需要向子进程传递“后打开的描述符”,或者子进程需要向父进程传递;或者两个进程可能是无关的,显然这需要一套传递机制。简单的说,首先需要在这两个进程之间建立一个 U...转载 2018-12-05 17:55:01 · 228 阅读 · 0 评论 -
Linux、c++程序设计——二级目录
·Linux编程linux socket解决客户端socket断开后, 服务器端进程退出的问题 基于libco、socket、epoll的回射服务器简单练习 内存分配算法——FF、BF、WF、buddy(伙伴算法) [转]进程间传递描述符 动手写一个内存池 [转]Makefile教程(超级详细) c++11新特性——线程、互斥量 UDP打洞代码记录(内网到内网打洞)...原创 2018-12-21 17:44:00 · 491 阅读 · 0 评论 -
Makefile教程(超级详细)
该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,...转载 2018-12-12 10:03:12 · 664 阅读 · 1 评论 -
c++11新特性——线程、互斥量
主要函数:this_thread::sleep_for() :交出cpu,在指定时间内不会执行this_thread::yield(void);交出cpu,在本次调度不会执行。具体会睡多久由OS调度机制决定。detach:剥离一个线程,使它后台运行,主线程会丧失控制权,也就是说之后不能再调用join函数。#include<iostream>#include<...原创 2018-12-24 10:54:54 · 249 阅读 · 0 评论 -
智能指针的基本用法 笔记
转载请注明出处,谢谢.智能指针可以通过引用计数的策略自动销毁对象,其作用不仅仅是偷了一点点懒,而是可以解决一些大型工程难题(尤其是多线程环境下对象的销毁问题).最近开始看<<Linux多线程服务端编程 使用muduo c++网络库>>(陈硕 著),感觉以上来它就讲了我写项目正在遇到的问题,提到了使用智能指针解决问题.#include <memory>...原创 2019-01-10 15:55:41 · 476 阅读 · 0 评论 -
UDP打洞代码记录(内网到外网打洞)
前几天写的又忘了怎么做了,还是老老实实记录下来吧.先从网上拔下一段话:NAT大致分为下面四类1) Full Cone这种NAT内部的机器A连接过外网机器C后,NAT会打开一个端口.然后外网的任何发到这个打开的端口的UDP数据报都可以到达A.不管是不是C发过来的.例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88A(192.1...2019-02-03 08:58:20 · 1043 阅读 · 0 评论