Tag: 双向双向

如何在Ruby中创建双向SSL套接字

我正在构建一个客户端Ruby库,它连接到服务器并等待数据,但也允许用户通过调用方法来发送数据。 我使用的机制是有一个初始化套接字对的类,如下所示: def initialize @pipe_r, @pipe_w = Socket.pair(:UNIX, :STREAM, 0) end 我允许开发人员调用以向服务器发送数据的方法如下所示: def send(data) @pipe_w.write(data) @pipe_w.flush end 然后我在一个单独的线程中有一个循环,我从连接到服务器的socket和@pipe_r : def socket_loop Thread.new do socket = TCPSocket.new(host, port) loop do ready = IO.select([socket, @pipe_r]) if ready[0].include?(@pipe_r) data_to_send = @pipe_r.read_nonblock(1024) socket.write(data_to_send) end if ready[0].include?(socket) data_received = socket.read_nonblock(1024) h2 << data_received break if socket.nil? || socket.closed? || socket.eof? […]