Current section

Files

Jump to
mammoth lib mammoth socket.ex
Raw

lib/mammoth/socket.ex

defmodule Mammoth.Socket do
alias Mammoth.Message
require Logger
def connect(host, port) do
{:ok, conn} = :gen_tcp.connect(host, port, [{:active, false}])
:inet.setopts(conn, [{:recbuf, 1024}])
{:ok, conn}
end
def send(conn, message = %Mammoth.Message{}) do
__MODULE__.send(conn, Message.format(message))
end
def send(conn, message) when is_binary(message) do
Logger.debug(inspect(message))
:gen_tcp.send(conn, message)
end
def receive(conn, length \\ 0) do
response = :gen_tcp.recv(conn, length)
case response do
{:ok, response} -> Logger.debug(inspect(response, binaries: :as_strings))
_ -> Logger.debug("Got response that was not :ok")
end
response
end
end