作者saiamoi (saiamoi)
看板Perl
标题Re: [问题] 关於socket 与 linux nc的问题
时间Sun Apr 29 23:30:47 2012
先谢谢各位的回覆以及推文的回覆
我想请问一下 用DarkKiller大所提到的方法 (类似while回圈?)
会很耗CPU等系统资源吗? 并可以使得linux nc结束後而perl不会关闭吗?
(不好意思这部分还没有试过)
那假如我另外写一支perl的程式
用来当作client端 取代之前用linux nc 的方式
这样当这支client端程式送出我要的指令後关闭
也会导致原本的server端的perl关闭吗?
这部分我还没有试过 只是一个想法 想问问各位这样的可行性如何呢?
谢谢各位
※ 引述《DarkKiller (System hacked)》之铭言:
: ※ 引述《saiamoi (saiamoi)》之铭言:
: for (;;) {
: : my $get = $sock->accept()
: 少了一个分号?
: : while($get)
: : {
: : if (/cmd/)
: : {
: : 要做的事;
: : }
: : }
: }
: : ------------------------------------------------------------
: : 执行该perl程式後 1234的port会打开并进行等待
: : 接着我从另一边使用linux 的nc 指令
: : 执行 nc pc77 12345
: : 然後输入"cmd" 使刚刚等待中的perl执行 "要做的事"
: : 到目前为止都很顺利 可以顺利执行 "要做的事"
: : 但接着当我用^C 关掉linux 的nc後
: : perl 那边也就一起关掉了...
: : 我希望的是 perl一旦开启後 就一直在有process 活在那边
: : 一直等待我从外部给指令 然後做事 做完後又继续等 直到我把perl关掉为止
: : 请问这样有办法做到吗?
: : 或是哪边需要做修改呢?
: : 先谢谢各位了! 感谢!
: 最简单的方式就是加这两行...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.12.69.77
※ 编辑: saiamoi 来自: 124.12.69.77 (04/29 23:31)
1F:→ roggerbass:以这个想法作基础 用fork child去开port 05/06 00:40
2F:→ roggerbass:parent 等child死就自动再fork another child 开 port 05/06 00:41
3F:→ roggerbass:坏处是 socket会有短暂断线 05/06 00:41
4F:→ saiamoi:嗯,谢谢,这几天以这样的方法正在测,似乎有r大说的情况 05/06 19:03
5F:→ saiamoi:但是目前可以接受这样的结果。谢谢各位 05/06 19:05