作者DarkKiller (System hacked)
看板Perl
标题Re: [问题] 关於socket 与 linux nc的问题
时间Sat Apr 28 20:01:27 2012
※ 引述《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: 210.242.135.97
1F:推 saiamoi:分号的部分是我的疏忽啦 程式里面是有分号的 04/28 23:50
2F:→ saiamoi:关於你说的方式 只要加个for 就不会因为nc结束而 04/28 23:51
3F:→ saiamoi:使得perl也跟着关掉吗? 我会用来试试看 谢谢 04/28 23:52
4F:→ saiamoi:不好意思可以顺便请教一下原因吗? 为什麽加个for就不会 04/28 23:54
5F:→ saiamoi:因为nc结束而跟着结束呢? 谢谢你 04/28 23:54
6F:→ erspicu:应该就是无线回圈的意思 也可以用 while(1){ .... }一样 04/29 02:39
7F:→ erspicu:只是这样CPU资源会不会被占据得太凶阿? 应该要开thread 04/29 02:40
8F:推 kdjf:不会啊,程式会block在等网路资料 04/30 15:42