Ruby:我如何并行接收和发送数据?

时间:2013-01-03 18:39:03

标签: ruby sockets network-programming udp

我想创建一个并行发送和接收数据的应用程序,就像聊天应用程序一样。它获取输入并发送一些输出,但不仅仅是它接收数据。我想使用UDP作为协议。我正在使用ruby 1.9.3。

这是接收数据的代码:

@s = UDPSocket.new
@s.bind(localhost, 1234)

Socket.udp_server_loop_on([@s]) do |message, sender|
  #do something
end

此代码应独立于应用程序的其余部分运行,不应阻止它。

我应该使用线程吗?我从来没有尝试过网络程序而且我不是专业开发人员,所以请耐心等待。也许我的代码/设计只是废话,所以请随时告诉我这是由专业人士完成的! ;)

1 个答案:

答案 0 :(得分:1)

你应该看看Eventmachine gem,它可以非常有效地处理阻塞IO。 除此之外,它还提供TCP和UDP服务器/客户端API。