Взаимодействие между приложениями C ++ и Rails - PullRequest
2 голосов
/ 14 марта 2010

У меня есть два приложения: служба c ++ и веб-сервер RoR (оба работают на одном VPS)

Мне нужно «отправить» некоторые переменные (а затем что-то с ними сделать) друг от друга. Например, я ищу что-то вроде этого:

// my C++ sample
void SendMessage(string message) {
   SendTo("127.0.0.1", message);
}

void GetMessage(string message) {
   if (message == "stop")
      SendMessage("success");
}

# Ruby sample
# application_controller.rb

def stop
   @m = Messager.new
   @m.send("stop")
end

Я никогда не использовал его раньше, и даже не знаю, какую технологию мне искать и изучать.

1 Ответ

1 голос
/ 14 марта 2010

Хорошо, я нашел решение. Его TCP сокеты:

Ruby TCP-сервер, для отправки сообщений:

require 'socket'

server = TCPServer.open(2000)
loop {                       
  Thread.start(server.accept) do |client|
    client.puts(Time.now.ctime)
    client.puts "Closing the connection. Bye!"
    client.close               
  end

}

Ruby клиент, для приема сообщений:

require 'socket'

host = 'localhost'
port = 2001 # it should be running server, or it will be connection error

s = TCPSocket.open(host, port)
  while line = s.gets
    puts line.chop
  end
s.close

Теперь вам нужно написать TCP-сервер + клиент в другом приложении. Но у тебя есть идея.

...