class SFML::Network::SocketSelector

Multiplex many sockets onto a single blocking wait. Useful for one-thread network servers — register every socket / listener you care about, call wait, then ask each one whether it’s ready?. Ready means there’s data to read or, for a listener, an incoming connection waiting.

selector = SFML::Network::SocketSelector.new selector.add(listener) clients.each { |c| selector.add© }

if selector.wait(timeout: 1.0) if selector.ready?(listener) # accept() will not block end clients.each do |c| next unless selector.ready?© # receive() will return data end end

Ruby’s IO.select covers a similar use case for plain Ruby IO objects; this binding exists for game code that’s already using SFML::Network::Tcp{Socket,Listener} / UdpSocket.