1
ホスト名とポートをコマンドラインからgen_tcp.connectに渡したいと思います。すべてが正常に動作します 'localhost' のハードコーディングすることで、しかしコマンドラインからgen_tcpにホスト名を渡す方法
** (exit) :badarg (kernel) gen_tcp.erl:149: :gen_tcp.connect/4 (mycomm) lib/application.ex:14: MyComm.Application.connect/2 (elixir) lib/kernel/cli.ex:76: anonymous fn/3 in Kernel.CLI.exec_fun/2
:badargエラー:上記の例を実行する
defmodule MyComm.Application do
use Application
def main(args \\ []) do
{options, _, _} = parse_args(args)
connect(options[:host], options[:port])
# connect('localhost', options[:port])
end
def connect(host, port) do
opts = [:binary, active: false]
{:ok, socket} = :gen_tcp.connect(host, port, opts)
:gen_tcp.send(socket, "123\r\n")
end
def parse_args(args \\ []) do
OptionParser.parse(args, switches: [host: :string, port: :integer])
end
end
が原因となります。 私はここで何が欠けていますか?
はい、それでした。ありがとう。 – Rob