【发布时间】:2014-06-04 06:53:47
【问题描述】:
这是我监听客户端 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
我不喜欢的是逐字节字符串连接。它不应该是内存效率的。
socket 的read 方法读取到换行为止。套接字是否可以读取到某个自定义终止符,例如 0x00 ?
如果不是,那么你知道哪个内存效率高的字符串?
【问题讨论】:
标签: ruby sockets string-concatenation terminator