require 'socket' server = Socket.new(:INET, :DGRAM) client = Socket.new(:INET, :DGRAM) server.bind(Socket.sockaddr_in(0, '127.0.0.1')) client.connect(Socket.sockaddr_in(server.connect_address.ip_port, '127.0.0.1')) client.write('hello world how are you doing') msg, addr, flags, *controls = server.recvmsg found = Socket.constants.grep(/^MSG_/).map do |name| flags & Socket.const_get(name) end p flags # => 1073741824 p found # => [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]