Re: [問題] 關於socket 與 linux nc的問題

看板Perl作者 (System hacked)時間13年前 (2012/04/28 20:01), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串2/3 (看更多)
※ 引述《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

04/28 23:50, , 1F
分號的部分是我的疏忽啦 程式裡面是有分號的
04/28 23:50, 1F

04/28 23:51, , 2F
關於你說的方式 只要加個for 就不會因為nc結束而
04/28 23:51, 2F

04/28 23:52, , 3F
使得perl也跟著關掉嗎? 我會用來試試看 謝謝
04/28 23:52, 3F

04/28 23:54, , 4F
不好意思可以順便請教一下原因嗎? 為什麼加個for就不會
04/28 23:54, 4F

04/28 23:54, , 5F
因為nc結束而跟著結束呢? 謝謝你
04/28 23:54, 5F

04/29 02:39, , 6F
應該就是無線迴圈的意思 也可以用 while(1){ .... }一樣
04/29 02:39, 6F

04/29 02:40, , 7F
只是這樣CPU資源會不會被占據得太兇阿? 應該要開thread
04/29 02:40, 7F

04/30 15:42, , 8F
不會啊,程式會block在等網路資料
04/30 15:42, 8F
文章代碼(AID): #1FczmQbt (Perl)
討論串 (同標題文章)
文章代碼(AID): #1FczmQbt (Perl)