Method: EaseEngine::Socket#recv
- Defined in:
- lib/ease_engine/socket.rb
#recv(max, flags = 0) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/ease_engine/socket.rb', line 40 def recv( max, flags = 0 ) # 1回で全てのデータを読み込めるとは限らないので、複数回に分けてデータを全て読み込む @err = nil bufs = [] while true begin buf = @socket.recv_nonblock( max, flags ) rescue IO::EAGAINWaitReadable => err buf = "" rescue Errno::ECONNRESET => err buf = "" rescue => err @err = err buf = "" end break if buf.empty? bufs.push buf end buf = bufs.join @read_buf << buf @is_disable = true if bufs.empty? buf end |