当前位置: 技术问答>linux和unix
这个socket程序的服务进程开始服务后,为什么总是两个进程?
来源: 互联网 发布时间:2015-06-01
本文导语: 我在同一个主机上运行一个socket的应用程序的服务端可客户端程序 先启动服务进程,一切正常, szcj 32625 1 0 23:14 pts/2 /home/bin/qbill /home/s 再启动客户端进程,连接成功,但是这时就有了两个服务端进程 szcj ...
我在同一个主机上运行一个socket的应用程序的服务端可客户端程序
先启动服务进程,一切正常,
szcj 32625 1 0 23:14 pts/2 /home/bin/qbill /home/s
再启动客户端进程,连接成功,但是这时就有了两个服务端进程
szcj 32625 1 0 23:14 pts/2 /home/bin/qbill (sever)
szcj 32661 32660 99 23:14 pts/2 /home/bin/sendbq (client)
szcj 32662 32625 6 23:14 pts/2 /home/bin/qbill (sever)
kill客户端进程后,服务端进程又正常了(一个)
但是,我的客户端进程 connect时,有
if( fork() == 0 ) { close( sock );...}
为什么还这样啊?
先启动服务进程,一切正常,
szcj 32625 1 0 23:14 pts/2 /home/bin/qbill /home/s
再启动客户端进程,连接成功,但是这时就有了两个服务端进程
szcj 32625 1 0 23:14 pts/2 /home/bin/qbill (sever)
szcj 32661 32660 99 23:14 pts/2 /home/bin/sendbq (client)
szcj 32662 32625 6 23:14 pts/2 /home/bin/qbill (sever)
kill客户端进程后,服务端进程又正常了(一个)
但是,我的客户端进程 connect时,有
if( fork() == 0 ) { close( sock );...}
为什么还这样啊?
|
你使用创建一个子进程来响应客户的请求,当然会出现两个了,如果你再起一个
client他就会有3个了。
client他就会有3个了。
|
???你不是fork了子进程吗,当然就是两个服务器进程了。
|
fork()函数就是创建子进程的啊兄弟!