lecture 06

This commit is contained in:
SowinskiBraeden committed 2026-10-20 10:10:30 -07:00
1 parent 8777cee0d0
commit d729786437
28 files changed
+825

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
defmodule Echo.Client do
def connect(host, port \\ 6666) do
opts = [active: false, packet: :line]
{:ok, socket} = :gen_tcp.connect(host, port, opts)
loop(socket)
end
defp loop(socket) do
case IO.gets("> ") do
:eof ->
:gen_tcp.close(socket)
line ->
:gen_tcp.send(socket, line)
case :gen_tcp.recv(socket, 0) do
{:ok, data} ->
IO.write(data)
loop(socket)
{:error, _} ->
:gen_tcp.close(socket)
end
end
end
end
with [host, port | _] <- System.argv(),
{port, _} <- Integer.parse(port)
do
Echo.Client.connect(String.to_atom(host), port)
else
_ -> Echo.Client.connect(:"127.0.0.1", 6666)
end