Question

Je ne trouve pas de bonnes informations sur la gestion des sockets de domaine Unix dans Haskell. J'ai besoin d'une fonction simple pour ouvrir une prise et y écrire une commande. Quelqu'un peut-il m'aider avec un avis sur où lire ceci ou peut-être en donner un exemple?

Fondamentalement, j'ai besoin de porter cette fonction Ruby simple (si cela aide à comprendre ce que je veux dire):

def monitor(string_command)
  require "socket"
  socket = File.join($vbase, @name, "monitor.soc")
  raise RuntimeError, "Monitor socket does not exst!" unless File.exist? socket
  begin
    UNIXSocket.open(socket) do |s|
      s.puts string_command
      s.flush
    end
  rescue
    return false
  end
  true
end

Tout ce qu'il out ouvre Socket et écrit une commande pour qu'il renvoie True lors du succès. Merci.

Était-ce utile?

La solution

Je pense que je l'ai compris. Eh bien, cela fonctionne et fait ce dont j'ai besoin, donc je suppose que cela devrait faire pour l'instant.

Voici l'extrait (sans aucune vérification d'erreur) si quelqu'un a besoin d'une chose similaire:

monitor n c = do
  soc <- socket AF_UNIX Stream 0
  connect soc (SockAddrUnix (vmBaseDir </> n </> "monitor.soc"))
  send soc (c ++ "\n")
  sClose soc
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top