2010-03-14 19 views
2

J'ai deux applications: C++ service et un serveur Web RoR (ils sont tous deux en cours d'exécution en même VPS)Interaction entre C++ et Rails applications

je dois « envoyer » certaines variables (puis faire quelque chose avec eux) de chacun d'eux. Pour exaple, je cherche quelque chose comme ceci:

// 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 

Je n'ai jamais utilisé auparavant, et je ne sais même pas quelle technologie dois-je chercher et d'apprendre.

Répondre

1

Ok, j'ai trouvé la solution. Ses sockets TCP:

serveur Ruby TCP, d'envoyer des messages:

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 

} 

client Ruby, pour accepter des messages:

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 

Maintenant, vous devez écrire serveur TCP + client dans une autre application. Mais vous avez l'idée.