
网络编程
文章平均质量分 92
xcw_user
......
展开
-
P2P网络编程
1、 具体部分代码见百度网盘 2、用C++/MFC实现P2P和群聊功能的聊天小软件 http://blog.youkuaiyun.com/stlst/article/details/44138075原创 2017-02-18 13:49:03 · 1470 阅读 · 0 评论 -
boost高并发网络框架+线程池
boost的官方例子,有单线程的网络框架,httpserver2是线程池的。下面参照网上某人的代码修改了一点(忘了哪位大仙的代码了) 测试工具,适用stressmark,测试效果非常好, 9000个/s #include <stdio.h>#include "AuthenHandle.h"#include "configure.h"#ifdef WIN32 //for window...转载 2018-05-15 10:37:52 · 478 阅读 · 0 评论 -
redis 主从配置参数详解
转:https://www.cnblogs.com/chenmh/p/5121849.html#undefined安装redis下载rediswget http://download.redis.io/releases/redis-3.0.7.tar.gz解压redistar -xvf redis-3.0.7.tar.gz安装rediscd redis-3.0.7“有可能需要安装gc...转载 2018-05-16 16:19:34 · 916 阅读 · 0 评论 -
UNIX环境高级编程学习之路
转:https://blog.youkuaiyun.com/drlmemory/article/details/53744791转载 2018-07-19 11:13:56 · 1777 阅读 · 0 评论 -
linux-dup-dup2
dunp和dup2详解转:https://www.cnblogs.com/linuxAndMcu/p/7668138.html正常的文件描述符: 在linux下,通过open打开以文件后,会返回一个文件描述符,文件描述符会指向一个文件表,文件表中的节点指针会指向节点表。看下图:打开文件的内核数据结构dup和dup2两个函数都可以用来复制打开的文件描述符,复制成功后和复制...转载 2018-08-02 08:41:52 · 304 阅读 · 0 评论 -
再谈Linux epoll惊群问题的原因和解决方案
转自:https://blog.youkuaiyun.com/dog250/article/details/80837278缘起近期排查了一个问题,epoll惊群的问题,起初我并不认为这是惊群导致,因为从现象上看,只是体现了CPU不均衡。一共fork了20个Server进程,在请求负载中等的时候,有三四个Server进程呈现出比较高的CPU利用率,其余的Server进程的CPU利用率都是非常低。中...转载 2018-09-28 11:14:56 · 1889 阅读 · 1 评论 -
epoll惊群原因分析
转自:https://www.cnblogs.com/sduzh/p/6810469.html考虑如下情况(实际一般不会做,这里只是举个例子):在主线程中创建一个socket、绑定到本地端口并监听 在主线程中创建一个epoll实例(epoll_create(2)) 将监听socket添加到epoll中(epoll_ctl(2)) 创建多个子线程,每个子线程都共享步骤2里创建的同一个e...转载 2018-09-28 11:22:10 · 265 阅读 · 0 评论 -
Linux网络编程“惊群”问题总结
转自:https://www.cnblogs.com/Anker/p/7071849.html1、前言(1)什么是“惊群”,会产生什么问题?(2)“惊群”的现象怎么用代码模拟出来?(3)如何处理“惊群”问题,处理“惊群”后的现象又是怎么样呢?2、何为惊群 如今网络编程中经常用到多进程或多线程模型,大概的思路是父进程创建socket,bind、listen后,通过fork创...转载 2018-09-28 11:29:58 · 217 阅读 · 0 评论 -
epool惊群问题的一个解决方案(利用SO_REUSEPORT)
转自:http://www.verycto.com/code/cpp/15.html 在早些时候,我们是不能在多个子进程中listen、bind同一个socket端口的。通常的做法会在主进程中对端口进行listen、bind,然后把它同时扔进每个子进程维护的epool池中。 在这种情况下,当一个客户端请求来到服务端,会导致多个子进程的epool监听同时被唤醒,这就是我们通常所说的epo...转载 2018-09-28 14:37:53 · 2586 阅读 · 2 评论 -
Linux内核中网络数据包的接收, 涉及到select/poll/epoll
转自:https://blog.youkuaiyun.com/dog250/article/details/50528280与网络数据包的发送不同,网络收包是异步的的,因为你不确定谁会在什么时候突然发一个网络包给你,因此这个网络收包逻辑其实包含两件事:1.数据包到来后的通知2.收到通知并从数据包中获取数据这两件事发生在协议栈的两端,即网卡/协议栈边界以及协议栈/应用边界:网卡/协议栈边界:网卡通知数据...转载 2018-09-28 16:12:02 · 918 阅读 · 0 评论 -
linux 内核poll/select/epoll实现剖析(原理经典)
转自:https://blog.youkuaiyun.com/lishenglong666/article/details/45536611poll/select/epoll的实现都是基于文件提供的poll方法(f_op->poll),该方法利用poll_table提供的_qproc方法向文件内部事件掩码_key对应的的一个或多个等待队列(wait_queue_head_t)上添加包含唤醒函数(w...转载 2018-09-28 19:36:30 · 5233 阅读 · 0 评论 -
poll两种模式浅析(ET or LT)
转:http://gotowqj.iteye.com/blog/1931556linux异步IO浅析 http://hi.baidu.com/_kouu/blog/item/e225f67b337841f42f73b341.html epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式...转载 2018-09-30 09:56:43 · 1144 阅读 · 0 评论 -
Makefile经典教程(掌握这些足够)
转自:https://blog.youkuaiyun.com/ruglcc/article/details/7814546/支持原创,请移步陈浩大神博客:http://blog.youkuaiyun.com/haoel/article/details/2886makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个...转载 2018-09-30 10:06:28 · 448 阅读 · 0 评论 -
libevent
转自:https://www.jianshu.com/p/511cd8d73599Linux系统编程13:libevent1.简介适用于windows、linux、bsd等多种平台 轻量级的开源的高性能的事件触发的网络库 内部使用select、poll、epoll等系统调用管理事件机制2. 下载安装2.1 自动安装yum install libevent-deve...转载 2019-09-16 20:24:20 · 1010 阅读 · 0 评论 -
linux下使用hiredis异步API实现sub/pub消息订阅和发布的功能
转: https://blog.youkuaiyun.com/chenzba/article/details/51224715 最近使用redis的c接口——hiredis,使客户端与redis服务器通信,实现消息订阅和发布(PUB/SUB)的功能,我把遇到的一些问题和解决方法列出来供大家学习。 废话不多说,先贴代码。redis_publisher.h[cpp] view plain copy...转载 2018-05-17 17:33:56 · 376 阅读 · 0 评论 -
进程线程协程那些事儿
转:https://www.cnblogs.com/zhang-can/p/7215506.html转载 2018-04-20 10:14:19 · 159 阅读 · 0 评论 -
阻塞和非阻塞,同步和异步
1 例子 故事:老王烧开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。老王想了想,有好几种等待方式1.老王用水壶煮水,并且站在那里,不管水开没开,每隔一定时间看看水开了没。-同步阻塞老王想了想,这种方法不够聪明。2.老王还是用水壶煮水,不再傻傻的站在那里看水开,跑去寝室上网,但是还是会每隔一段时间过来看看水开了没有,水没有开就走人。-同步非阻塞老王想了想,现在的方法聪转载 2018-03-29 15:56:43 · 215 阅读 · 0 评论 -
windows网络模型
完成端口IOCP详解_解释的不错http://blog.youkuaiyun.com/beyond_cn/article/details/9336043Windows Socket五种I/O模型 http://www.cppblog.com/beautykingdom/archive/2010/01/09/105215.html Winsock 的I/O操作:1、 两种I/O模式 阻塞模式...转载 2017-03-17 18:03:06 · 923 阅读 · 0 评论 -
TCP通讯处理粘包详解
转http://www.cnblogs.com/smark/p/3284756.html一般所谓的TCP粘包是在一次接收数据不能完全地体现一个完整的消息数据。TCP通讯为何存在粘包呢?主要原因是TCP是以流的方式来处理数据,再加上网络上MTU的往往小于在应用处理的消息数据,所以就会引发一次接收的数据无法满足消息的需要,导致粘包的存在。处理粘包的唯一方法就是制定应用层的数据通讯协议,通过协议来规范现有转载 2017-03-22 09:02:42 · 647 阅读 · 0 评论 -
《 UNIX网络编程》源码的使用
http://blog.youkuaiyun.com/baikaishui525/article/details/7013907转载 2017-03-22 17:20:18 · 336 阅读 · 0 评论 -
UNIX环境高级编程
http://blog.youkuaiyun.com/justaipanda/article/category/1199512转载 2017-03-14 11:01:56 · 412 阅读 · 0 评论 -
UNIX网络编程第一个例子
《Unix网络编程卷1-套接字联网API》第一个例子编译—-可以看看相应 的网络博客 http://blog.youkuaiyun.com/lidna242/article/details/47047227《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决 –看看环境编程 http://blog.youkuaiyun.com/21aspnet/article/details/6682813在Cen转载 2017-03-24 12:55:09 · 655 阅读 · 0 评论 -
完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
http://blog.youkuaiyun.com/xujiezhige/article/details/41115453转载 2017-03-15 19:35:31 · 378 阅读 · 0 评论 -
网络模型
Windows Socket五种I/O模型转载 2017-03-15 19:49:43 · 202 阅读 · 0 评论 -
Connect函数阻塞
1.采用select 在学习嵌入式Linux网络编程中,很多同学都发现了一个问题,那就是调用connect函数时,如果服务端关闭,客户 端调用connect()函数时,发现阻塞在那里,而且利用ctrl+c信号去停止客户端程序时,需要等待一个较为长的时间才能响应了,这个时间如果大家 细心会发现,每次都是75秒的时间。那么有没有什么比较好的办法,可以以用户能接受的一个时间响应来停止掉一个正在conne转载 2017-03-16 09:49:29 · 1099 阅读 · 0 评论 -
socket阻塞
客户端: connect: 需要TCP三次握手,所以是阻塞的原创 2017-03-17 08:44:47 · 223 阅读 · 0 评论 -
fork()函数详解
一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。转载 2017-04-03 18:42:14 · 290 阅读 · 0 评论 -
LibEvent中文帮助文档
http://blog.youkuaiyun.com/zhouyongku/article/details/53431597转载 2017-03-15 19:36:38 · 351 阅读 · 0 评论 -
IOCP模型与EPOLL模型的比较, 包含性能描述
一:IOCP和Epoll之间的异同。 异: 1:IOCP是WINDOWS系统下使用。Epoll是Linux系统下使用。 2:IOCP是IO操作完毕之后,通过Get函数获得一个完成的事件通知。 Epoll是当你希望进行一个IO操作时,向Epoll查询是否可读或者可写,若处于可读或可写状态后,Epoll会通过epoll_wait进行通知。 3:IOCP封装了异步的消息事件的通知机制,同时封装了转载 2018-03-29 14:09:39 · 2064 阅读 · 0 评论 -
网络编程中Reactor与Proactor的概念及区别
1、定义两种I/O多路复用模式:Reactor和Proactor一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler)。开发人员预先注册需要处理的事件及其事件处理器(或回调函数);事件分离器负责将请求事件传递给事件处理器。两个与事件分离器有转载 2018-03-29 15:32:24 · 999 阅读 · 0 评论 -
libevent学习笔记(参考libevent深度剖析)
转自:https://www.cnblogs.com/secondtonone1/p/5535722.html最近自学libevent事件驱动库,参考的资料为libevent2.2版本以及张亮提供的《Libevent源码深度剖析》,参考资料:http://blog.youkuaiyun.com/sparkliang/article/details/4957667libevent好处之类的就...转载 2019-09-16 20:21:04 · 1132 阅读 · 0 评论