[問題]請教各位server的問題

看板Perl作者 (~咖啡癮君子~)時間16年前 (2009/06/24 15:56), 編輯推噓3(300)
留言3則, 1人參與, 最新討論串1/3 (看更多)
各位好小弟目前使用socket遇到一個問題 , 以下是我的程式碼, 可以看得來我目前只有要接收 client的msg , 但每次從client接收到的msg都是空的,而且之後 就一直執行不斷的印出recv :變成無線迴圈(select變成沒有作用!!) , 請教各位我目前是要不斷接收 來自client的訊息而已, 請問是不是哪有寫錯要注意的地方 謝謝 $Socket = new IO::Socket::INET->new(LocalAddr => 'localhost', LocalPort => 111, Listen => SOMAXCONN, Proto => 'tcp', Reuse => 1 ) or die "Can't bind : $@\n"; $s = new IO::Select($Socket); $i=1; while($i) { if( $s->can_read ) { $Socket->recv($text,512); print "recv : $text\n"; # $i=0; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.82.195

06/24 16:01, , 1F
你沒有做 accept 的動作.. 你要產生一個新的 sock fd
06/24 16:01, 1F

06/24 16:02, , 2F
對於server socket而言 你不能去用recv 你要先accept
06/24 16:02, 2F

06/24 16:12, , 3F
然後把accept後的sock放入select裡面, 等待有資料再讀取
06/24 16:12, 3F
文章代碼(AID): #1AGTn8GC (Perl)
文章代碼(AID): #1AGTn8GC (Perl)