我在运行ruby代码时遇到问题
我试图通过tcpip从IMPIN高速公路阅读器中提取RFID标签信息。要从读卡器访问信息,我必须通过HTTPS和特定端口。我的代码:我在运行ruby代码时遇到问题,ruby,Ruby,我试图通过tcpip从IMPIN高速公路阅读器中提取RFID标签信息。要从读卡器访问信息,我必须通过HTTPS和特定端口。我的代码: require 'socket' # The IP address or hostname of your reader READER_HOSTNAME = 'https://10.57.237.50' # The TCP port specified in Speedway Connect READER_PORT = 14150 # Create a TC
require 'socket'
# The IP address or hostname of your reader
READER_HOSTNAME = 'https://10.57.237.50'
# The TCP port specified in Speedway Connect
READER_PORT = 14150
# Create a TCP socket connection to the reader
s = TCPSocket.open('https://10.57.237.50', 14150)
# Receive data in an infinite loop
while true
# Read one line at a time
line = s.gets
# Print it to the screen
print line
end
这似乎正在运行,但从未完成。Ruby挂在闪烁的光标旁。我认为这与端口甚至是安全的HTTP有关。你的问题是你有一个无限循环
while true # This runs FOREVER (or at least until ctrl-c)
# Read one line at a time
line = s.gets
# Print it to the screen
print line
end
您真的应该将其更改为:
while line = s.gets # Read one line at a time
# Print it to the screen
print line
end
这将读取打印到套接字的每一行,然后在行数用完时结束。最后,您需要记住在最后关闭套接字
s.close
如果你想多读一点书,可以看看有一些像你这样的简单例子的 在Impinj支持部门的帮助下,我们发现Speedway Connect中存在一个错误,如果选择的天线端口多于可用的天线端口(默认情况下选择所有端口),程序将挂起。在我的配置中(读卡器上的4个端口+(2个)天线集线器)端口:1-8+9-16+17+25。感谢所有的帮助。你说的永不完成是什么意思?它不打印任何东西吗?你有一个无限的while循环,所以我不希望程序真的终止。
while true
永远不会终止。“我无论如何都不是程序员”-那是废话。您已经编写了代码(或正在尝试编写),因此您是一名程序员。不要因为你是新来的就把自己排除在外。不应该TCPSocket.open('https://10.57.237.50”,14150)
会失败吗?我非常确定那里的主机名不应该包含协议。我根据jkeuhlen的帖子进行了更改,但它仍然挂在光标上。我正在使用textmate编写代码,14150以红色突出显示,这就是为什么我认为这是一个端口问题。套接字中有任何内容吗?阅读套接字的一般工作原理。如果它现在挂起,那是因为它正在等待一些东西进入套接字(这就是get
正在做的,等待输入)。一旦你将某个内容输入到该套接字,它就会打印出来,然后程序就会结束。@jkeuhlen你提议的更改不会有任何区别。看来他根本没有得到任何意见,这是他的主要问题。