Ruby:在 TCPsocket 上监听各个字节(无 CR/LF)并写入文件

问题描述 投票:0回答:1

我想编写一个服务器来侦听给定的 TCP 端口,捕获传入数据并一次处理一个字节(传入的数据量很小 - 每小时几千字节)

为了简单起见,我想将接收到的字符的 ASCII 代码回显到控制台。我有一个基于字符串的工作实现,但不知道如何使服务器立即处理字节而不是等待 CR/LF。

任何帮助表示赞赏!我正在使用 Ruby 3.3.1

我尝试使用

data = socket.recvfrom(1000)
,但据我所知,这仍然等待 CR/LF

ruby tcpserver
1个回答
0
投票

尝试使用

socket.getbyte
。这将返回下一个接收字节的 ascii 代码。然后您可以使用
Integer#chr
打印该字节。

socket.getbyte # => 104
socket.getbyte.chr # => "h"

然后您可以将其放入循环中以将传入的数据打印到控制台。

loop do
  puts socket.getbyte.chr
end
© www.soinside.com 2019 - 2024. All rights reserved.