gpt4 book ai didi

ruby - 网络聊天程序!! (需要一点帮助)

转载 作者:行者123 更新时间:2023-12-03 12:00:20 24 4
gpt4 key购买 nike

我一直在研究一个小的脚本,该脚本允许通过TCPsocket命令进行通信。我在代码中遇到了一个小错误。由于某种原因,在两次运行之后,它将停止运行RX循环。

我还担心它在等待我为get语句输入内容时,不会在寻找传入消息...

任何帮助是极大的赞赏。在此先感谢大家

require 'socket'

ip = 'localhost'
port = 18000

TX = Thread.new do
loop {
Serv = TCPSocket.open(ip, port)
message = gets.chomp()
Serv.write(message)
Serv.close
}
end
RX = Thread.new do
loop {
server = TCPServer.open(port)
client = server.accept
puts client.gets
}
end

RX
TX.join

最佳答案

您应该在循环外初始化服务器。 (并且为避免警告,您不应在循环中重新分配诸如Serv之类的常量名称):

require 'socket'

ip = 'localhost'
port = 18000

TX = Thread.new do
loop {
conn = TCPSocket.open(ip, port)
message = gets.chomp()
conn.write(message)
conn.close
}
end
RX = Thread.new do
server = TCPServer.open(port)
loop {
client = server.accept
puts client.gets
}
end

TX.join

如果要同时为多个客户端提供服务,请从 http://ruby-doc.org/stdlib-1.9.3/libdoc/socket/rdoc/TCPServer.html的第二个示例中获取提示,并使用 Thread.start(server.accept) { |client| ... }

关于ruby - 网络聊天程序!! (需要一点帮助),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29302528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com