Ruby on rails s.recvfrom_nonblock(65536)[0]在此代码段中做什么
嗨,有人能解释一下我检查过的下面代码段中的s.recvfrom_nonblock(65536)[0]是什么意思,但对我来说没有意义Ruby on rails s.recvfrom_nonblock(65536)[0]在此代码段中做什么,ruby-on-rails,ruby,rubygems,Ruby On Rails,Ruby,Rubygems,嗨,有人能解释一下我检查过的下面代码段中的s.recvfrom_nonblock(65536)[0]是什么意思,但对我来说没有意义 require 'socket' s = UDPSocket.new s.bind('127.0.0.1', 8100) while true do begin line = s.recvfrom_nonblock(65536)[0] puts line if line.include?('test1') || line.includ
require 'socket'
s = UDPSocket.new
s.bind('127.0.0.1', 8100)
while true do
begin
line = s.recvfrom_nonblock(65536)[0]
puts line if line.include?('test1') || line.include?('test2') || line.include?('somestring')
rescue IO::WaitReadable
IO.select([s])
retry
end
end
#recvfrom_nonblock
将从udpsocket接收数据,并返回有关该数据的一组信息。提供的参数(65536)是从消息接受的最大字节数,返回数组的索引0包含实际的“消息”
简而言之,您的代码段通过recvfrom_nonblock通过端口8100接受多达65536字节的数据。recvfrom_nonblock方法将返回一个信息数组,但此代码段所关心的只是该数组的索引0,它包含要传递的文本,并将其保存到行
变量中
如果查看,代码中会有一条注释,说明数组输出的样子。您还可以分解返回的数组:
line,addr=s.recvfrom_nonblock(65536)