我有一些我用来从网络套接字获取数据的代码.它工作正常,但我通过反复尝试错过了我的方式.我谦虚地承认我不完全明白它是如何工作的,但我真的很想. (这是我发现的货物培训工作代码)
我不明白的部分以“ready = IO.select …”开头我不清楚:
> IO.select正在做什么(我尝试查找它,但是与内核混淆甚至更加困惑)
> IO.select的数组参数是什么
什么准备[0]正在做
阅读1024字节的一般想法?一次
以下是代码:
@mysocket = TCPSocket.new('192.168.1.1',9761) th = Thread.new do while true ready = IO.select([@mysocket]) readable = ready[0] readable.each do |socket| if socket == @mysocket buf = @mysocket.recv_nonblock(1024) if buf.length == 0 puts "The server connection is dead. Exiting." exit else puts "Received a message" end end end end end
提前感谢帮助我“学会钓鱼”.我讨厌我的代码,我不完全明白 – 这只是巧合的工作.