socket 父子进程公用socket描述符

tuher 2017-08-16 10:59:42
客户端父进程建立socket连接,接收处理数据,
子进程利用此socket描述符发送测试包定时检查连接。
这样搞会不会有问题, 特别是在父子进程通信时间重合的情况。
根本是想起个子进程定时监测连接状态。没想用 socket的 keep alive属性。
有没有其他好的实现思路?
望指教
...全文
640 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jklinux 2017-08-16
  • 打赏
  • 举报
回复
引用 2 楼 tuher的回复:
[quote=引用 1 楼 jklinux 的回复:] 父进程接收和子进程发送数据, 这样没问题, 就算是同一个时间点也不会有问题,因为网络本来就是全双工,可同时收发的。 用多进程这样做的话,如果父子进程有数据需交换的话,那就有点麻烦了,需要用到进程间通信了。 如果用多线程做的话,共用进程里的全局变量就可以了。 也可以用poll, select, epoll这些函数来实现定时接收,在一定的间隔时间后,没有接收到数据则发测试包。
----- 可能描述错了 。不是父进程接收,子进程发送 。而是父子进程均有接收和发送数据。[/quote] 那不行哦,数据一个进程接收数据后,另一个进程就收不到了
tuher 2017-08-16
  • 打赏
  • 举报
回复
引用 1 楼 jklinux 的回复:
父进程接收和子进程发送数据, 这样没问题, 就算是同一个时间点也不会有问题,因为网络本来就是全双工,可同时收发的。 用多进程这样做的话,如果父子进程有数据需交换的话,那就有点麻烦了,需要用到进程间通信了。 如果用多线程做的话,共用进程里的全局变量就可以了。 也可以用poll, select, epoll这些函数来实现定时接收,在一定的间隔时间后,没有接收到数据则发测试包。
----- 可能描述错了 。不是父进程接收,子进程发送 。而是父子进程均有接收和发送数据。
jklinux 2017-08-16
  • 打赏
  • 举报
回复
父进程接收和子进程发送数据, 这样没问题, 就算是同一个时间点也不会有问题,因为网络本来就是全双工,可同时收发的。 用多进程这样做的话,如果父子进程有数据需交换的话,那就有点麻烦了,需要用到进程间通信了。 如果用多线程做的话,共用进程里的全局变量就可以了。 也可以用poll, select, epoll这些函数来实现定时接收,在一定的间隔时间后,没有接收到数据则发测试包。

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧