![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
socket
文章平均质量分 70
ndrandy
这个作者很懒,什么都没留下…
展开
-
java NIO Selector惊群现象研究
序言:本文讨论的问题都是基于JDK8的版本在使用java的NIO实现一个server之前,本人也有接触过c/c++/php的server实现,在“单进程单线程”下,本身是串行的,也无需讨论“惊群问题”,在“多进程单线程” 模式下(以php为例),一般是在主进程中创建好server socket、绑定好端口等操作,然后fork出多个worker进程(每个worker进程都会accept连接),父子进程间因fork有“写时复制机制”的存在,可以共用同一个端口下的server socket,当有客户端连.原创 2022-05-20 12:15:28 · 518 阅读 · 0 评论 -
ab压测Http Server时TCP连接TIME_WAIT状态研究
当ab压测工具和http server在同一台(centos)机器时,为何不会出现端口不够用的情况呢?假设压测参数如下:ab -n100000 -c5000 http://localhost我们都知道tcp有四元组的概念,server_ip:server_port <=> client_ip:client_port,对于server端,只需要一个固定端口,而client端每个连接需要使用不同的随机端口,在linux下随机端口是有限的,执行命令查看:cat /proc/sys/n.原创 2021-07-12 18:57:22 · 600 阅读 · 1 评论 -
执行socket的write方法之后,立刻close连接,对方是否能成功收到数据呢?
最近在看 《linux多线程服务端编程:使用moduo C++网络库》一书中,看到一段话“如果要主动关闭连接,如何保证对方已经收到全部数据?如果应用层有缓冲(这在非阻塞网络编程中是必需的,见下文),那么如何保证先发送完缓冲区中的数据,然后再断开连接?直接调用close(2)恐怕是不行的。”摘录来自: 陈硕. “Linux多线程服务端编程:使用muduo C++网络库。”往socket连接中write数据,其实先到write buffer之中的,如果是非堵塞IO write操作会立刻返回,此.原创 2021-01-08 15:38:32 · 1769 阅读 · 4 评论 -
压测比对Swoole tcp协程池和单个non blocking tcp客户端
php socket通讯作为推流使用,基本上没办法跑满网卡。只有c++这种静态语言能接近跑满网卡原创 2020-12-07 21:26:32 · 271 阅读 · 0 评论 -
php进程间传递文件描述符
#进程间传递文件描述符有什么实际应用场景呢?- 最近看到golang中关于服务器平滑热重启reload时,需要长链接不被断开,需要fork一个子进程出来,然后把父进程的所有socket的文件 描述符(即:所有hold的客户端连接)都传递到子进程。在没研究linux进程间传递文件描述符之前,我的脑海里只有fork时,发生copy-on-write,父子进程间直接就可以共享连接fd了,但是这个时候,如果父进程退出,那所有的连接也被掐断了,因为父子进程共享连接资源了。所以需要将fd关联到的资源完整的clon..原创 2020-07-01 17:09:47 · 412 阅读 · 0 评论 -
php socket通信中stream_select方法的理解
stream_select 判断连接可读可写判断连接是否断开原创 2017-08-03 18:51:49 · 4852 阅读 · 0 评论