[Linux] 多进程网络编程监听一个端口
2023-02-18 15:41:22 时间
SO_REUSEPORT支持多个进程或者线程绑定到同一端口
每个进程可以自己创建socket、bind、listen、accept相同的地址和端口,各自是独立平等的。让多进程监听同一个端口,各个进程中accept socket fd
不一样,有新连接建立时,内核只会唤醒一个进程来accept
,并且保证唤醒的均衡性
<?php $context=stream_context_create(); stream_context_set_option($context, 'socket', 'so_reuseport', 1); for($i=0;$i<2;$i++){ $pid = pcntl_fork(); if($pid == 0){ while(true){ $socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr,STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,$context); while ($conn = @stream_socket_accept($socket,5)) { fwrite($conn, getmypid().':时间:' . date('Y-m-d H:i:s') . "\n"); fclose($conn); } fclose($socket); } } } while(1){ $pid = pcntl_wait($status); var_dump($pid,$status); sleep(1); }
相关文章
- 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(3) - 统一FlexSPI驱动访问
- 《痞子衡嵌入式半月刊》 第 25 期
- 痞子衡嵌入式:恩智浦MCUX SDK在GitHub上线了
- 《痞子衡嵌入式半月刊》 第 24 期
- 痞子衡嵌入式:MCUBootFlasher v3.0发布,为真实的产线操作场景而生
- 痞子衡嵌入式:MCUBootUtility v3.0发布,开始支持LPC, Kinetis啦
- 《痞子衡嵌入式半月刊》 第 23 期
- 痞子衡嵌入式:MCUXpresso IDE下添加新路径下源文件进工程编译的方法
- 痞子衡嵌入式:Farewell, 我的写博故事2020
- 痞子衡嵌入式:MCUXpresso IDE下SDK工程导入与workspace管理机制
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.6)- 串行NOR Flash下载算法(MCUXpresso IDE篇)
- 《痞子衡嵌入式半月刊》 第 22 期
- 痞子衡嵌入式:读工程师岗位工作31年退休的同事离职信有感
- 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.5)- 串行NOR Flash下载算法(IAR EWARM篇)
- 《痞子衡嵌入式半月刊》 第 21 期
- 痞子衡嵌入式:了解i.MXRT1060系列ROM中串行NOR Flash启动初始化流程优化点
- 痞子衡嵌入式:深入i.MXRT1050系列ROM中串行NOR Flash启动初始化流程
- 痞子衡嵌入式:一个奇怪的Keil MDK下变量链接强制对齐报错问题(--legacyalign)
- 痞子衡嵌入式:一次利用IAR自带CRC完整性校验功能的实践(为KBOOT加BCA)
- 痞子衡嵌入式:探析开启CRC完整性校验的IAR工程生成.out和.bin文件先后顺序