看板 Perl 關於我們 聯絡資訊
各位好小弟目前使用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
LiloHuang:你沒有做 accept 的動作.. 你要產生一個新的 sock fd 06/24 16:01
LiloHuang:對於server socket而言 你不能去用recv 你要先accept 06/24 16:02
LiloHuang:然後把accept後的sock放入select裡面, 等待有資料再讀取 06/24 16:12