这是我监听客户端 TCP 套接字的代码:
def initialize
@msg = ''
@messages = Queue.new
@socket = TCPSocket.open('127.0.0.1', 2000)
Thread.new do
loop do
ch = @socket.recv(1)
if ch == "\n"
puts @msg unless @msg.blank?
@msg = ''
else
@msg += ch
end
end
end
end
我不喜欢的是逐字节字符串连接。它不应该是内存效率的。
套接字的read
方法读取直到换行。例如,套接字能否读取到某个自定义终止符0x00
?
如果不是,那么您知道哪个内存高效的字符串附加?