Project

General

Profile

Bug #15253

Updated by nobu (Nobuyoshi Nakada) 12 months ago

サーバーにおいて以下のコードを動かしています。

```ruby
require
`require 'socket'

Socket.tcp_server_loop("", 49088) {|sock, client_addrinfo|
Thread.new {
begin
number_of_copied_bytes = IO.copy_stream(sock, sock)
$stderr.puts number_of_copied_bytes
p number_of_copied_bytes
ensure
sock.close
end
}
}
``` `

これに、ESP32マイコンを搭載したArduino 1.8.5からデータを送っても、コンソールに送ったバイト数が
表示されません。つまり、`number_of_copied_bytes`の値が`$stderr.puts`でも`p`でも表示されません。 表示されません。つまり、number_of_copied_bytesの値が$stderr.putsでもpでも表示されません。
ArduinoではなくPC上でRubyを動かしてデータを送ると送ったバイト数が表示されますし、
`Socket.tcp_server`ではなく、`TCPServer`クラスを使用したコードでは、Arduinoから送ったデータが Socket.tcp_serverではなく、TCPServerクラスを使用したコードでは、Arduinoから送ったデータが
問題なく表示されます。

Back