Project

General

Profile

Bug #15253

Updated by nobu (Nobuyoshi Nakada) over 5 years 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