r.s*_*cky 8 haskell unix-socket
我找不到关于在Haskell中处理Unix Domain套接字的好信息.我需要一个简单的函数来打开一个套接字并向它写一个命令.任何人都可以帮我提一下在哪里阅读或者举个例子吗?
基本上,我需要移植这个简单的Ruby函数(如果它有助于理解我的意思):
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
Run Code Online (Sandbox Code Playgroud)
它只会打开套接字并向其写入命令,成功后返回true.谢谢.
我想我明白了.嗯,它可以工作并做我需要的,所以我想它现在应该做.
如果有人需要类似的东西,这里是片段(没有任何错误检查):
monitor n c = do
soc <- socket AF_UNIX Stream 0
connect soc (SockAddrUnix (vmBaseDir </> n </> "monitor.soc"))
send soc (c ++ "\n")
sClose soc
Run Code Online (Sandbox Code Playgroud)