免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 战雨灾
打印 上一主题 下一主题

[C] [请教]c/s结构如何取得server进程的pid [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-11-29 14:23 |只看该作者
ps一下不就知道了么

论坛徽章:
0
12 [报告]
发表于 2008-11-29 15:15 |只看该作者
不想用系统命令
PS:刚才搜索时看到一句,说用system("ps"显得很老土

论坛徽章:
0
13 [报告]
发表于 2008-11-29 15:17 |只看该作者
找到个遍历/proc的代码,也是CU里的
http://bbs.chinaunix.net/thread-656670-1-1.html

论坛徽章:
0
14 [报告]
发表于 2008-11-29 16:55 |只看该作者
我晕。。ps最帅了
遍历才土
lzcxh 该用户已被删除
15 [报告]
发表于 2008-11-29 17:37 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
16 [报告]
发表于 2008-11-29 18:25 |只看该作者
不是我说的。。。虽然我不用PS。
C/S结构不一定要用socket吧,感觉socket不怎么紧密

论坛徽章:
0
17 [报告]
发表于 2008-11-29 20:44 |只看该作者

回复 #1 战雨灾 的帖子

进程间通信~~~

一般的机制,如信号、信号量等等机制是在同一台主机内进程间通信的机制。
但是机制中有一种机制做到了超越,那就是socket机制,可以跨机器。

如果你的Server端和client端在一台机器上,那就没必要用socket了,如果不在同一台机器上,那你的C/S结构用的socket机制已经满足了。

具体获得S端pid的方法可以自己定义个数据头,用S端查询后通过socket返回给Client端。

论坛徽章:
0
18 [报告]
发表于 2008-11-29 21:28 |只看该作者
同一台机器,

论坛徽章:
0
19 [报告]
发表于 2008-11-30 16:46 |只看该作者
消息队列不用PID,但不知道为什么msgrcv总是出错,返回-1

论坛徽章:
0
20 [报告]
发表于 2008-12-01 13:31 |只看该作者
原帖由 战雨灾 于 2008-11-29 15:17 发表
找到个遍历/proc的代码,也是CU里的
http://bbs.chinaunix.net/thread-656670-1-1.html

linux系统下的ps和top都是通过读取/proc文件系统实现的。
提供以下方法仅供参考:
第一:system("ps | grep"或者popen之后写入 "ps | grep"都行。
第二:如果觉得system老土的话,就把上文中我的那个例子改改。
第三:如果server是你自己开发的话,server启动时,干脆自己往一个指定文件中写入自己的pid就行了,然后别的进程读取这个文件就知道了
Server一开始只需要

  1. char szcommand[50] = {0};
  2. sprintf(szcommand, "echo %d > pid.txt", getpid());
  3. system(szcommand);
复制代码

就是了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP