在Mac和Ubuntu安裝上執行以下代碼時,我遇到了一些奇怪的功能。Ruby - 在Mac和Ubuntu上以不同方式執行的代碼
我的代碼對我的Arduino,然後客戶端是否連接檢查(它成功地連接)和I然後使用socket
寶石,然後輸出使用Ruby代碼經由t.puts
將命令發送到我的Arduino的連接無論我使用Arduino軟件將其發送到串行輸出。這是很容易的部分。
當在Mac上我的串行輸出以下,這是正確執行以下操作:
{power, tv} # t.puts "{power, tv}"
然而,當在Ubuntu上執行相同的代碼,我得到的串行輸出以下,彷彿它試圖再次連接。它不給上述串行輸出,它確實在Mac上:
Connecting... # t.puts "{power, tv}" # Connecting... (text is actually coming from Arduino not the below code).
我有雙重檢查,我的Arduino,IP,代碼和端口是正確的(這是它的連接)。我只是沒有看到爲什麼輸出在Mac和Ubuntu上會有所不同。
爲什麼會出現這種情況的原因以及下列代碼是否可以在所有環境下正確發送它的方式進行修改?
#!/usr/bin/ruby
require "socket"
#Thread.new {
begin
puts "Connecting to 10.1.1.45..."
t = TCPSocket.new("10.1.1.45", 80)
rescue
puts "error : #{$!}"
else
t.print "{power,tv}"
t.close
puts "Sent command..."
end
#}
記住我可以連接到10.1.1.45就好了(我可以ping等),所以實際的Arduino代碼是沒有過錯這裏就我所知,因爲我通過插拔測試此它進入Mac和Ubuntu並執行上面完全相同的代碼。隨時問我任何進一步的問題,我會很樂意儘可能詳細地回答他們,以幫助我在路上。
在此先感謝。