@@ -26,41 +26,43 @@ Let's implement those steps. Move to the `apps/kv_server` application, open up `
26
26
``` elixir
27
27
require Logger
28
28
29
- def accept (port) do
30
- # The options below mean:
31
- #
32
- # 1. `:binary` - receives data as binaries (instead of lists)
33
- # 2. `packet: :line` - receives data line by line
34
- # 3. `active: false` - blocks on `:gen_tcp.recv/2` until data is available
35
- # 4. `reuseaddr: true` - allows us to reuse the address if the listener crashes
36
- #
37
- {:ok , socket} = :gen_tcp .listen (port,
38
- [:binary , packet: :line , active: false , reuseaddr: true ])
39
- Logger .info " Accepting connections on port #{ port } "
40
- loop_acceptor (socket)
41
- end
29
+ defmodule KVServer do
30
+ def accept (port) do
31
+ # The options below mean:
32
+ #
33
+ # 1. `:binary` - receives data as binaries (instead of lists)
34
+ # 2. `packet: :line` - receives data line by line
35
+ # 3. `active: false` - blocks on `:gen_tcp.recv/2` until data is available
36
+ # 4. `reuseaddr: true` - allows us to reuse the address if the listener crashes
37
+ #
38
+ {:ok , socket} = :gen_tcp .listen (port,
39
+ [:binary , packet: :line , active: false , reuseaddr: true ])
40
+ Logger .info " Accepting connections on port #{ port } "
41
+ loop_acceptor (socket)
42
+ end
42
43
43
- defp loop_acceptor (socket) do
44
- {:ok , client} = :gen_tcp .accept (socket)
45
- serve (client)
46
- loop_acceptor (socket)
47
- end
44
+ defp loop_acceptor (socket) do
45
+ {:ok , client} = :gen_tcp .accept (socket)
46
+ serve (client)
47
+ loop_acceptor (socket)
48
+ end
48
49
49
- defp serve (socket) do
50
- socket
51
- |> read_line ()
52
- |> write_line (socket)
50
+ defp serve (socket) do
51
+ socket
52
+ |> read_line ()
53
+ |> write_line (socket)
53
54
54
- serve (socket)
55
- end
55
+ serve (socket)
56
+ end
56
57
57
- defp read_line (socket) do
58
- {:ok , data} = :gen_tcp .recv (socket, 0 )
59
- data
60
- end
58
+ defp read_line (socket) do
59
+ {:ok , data} = :gen_tcp .recv (socket, 0 )
60
+ data
61
+ end
61
62
62
- defp write_line (line, socket) do
63
- :gen_tcp .send (socket, line)
63
+ defp write_line (line, socket) do
64
+ :gen_tcp .send (socket, line)
65
+ end
64
66
end
65
67
```
66
68
0 commit comments