Skip to content

Commit

Permalink
Merge pull request luvit#256 from joerg-krause/master
Browse files Browse the repository at this point in the history
examples: add pipe echo example
  • Loading branch information
creationix committed Apr 13, 2017
2 parents 1fb233c + 7ff9848 commit 33d33a6
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
24 changes: 24 additions & 0 deletions examples/uvbook/pipe-echo-client.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
local uv = require("uv")

local SOCK = "/tmp/echo.sock"

local client = uv.new_pipe(false)
client:connect(SOCK, function (err)
assert(not err, err)
client:read_start(function (err, chunk)
assert(not err, err)
if chunk then
print(chunk)
else
client:close()
end
end)

client:write("Hello ")
client:write("world!")
end)

print("CTRL-C to break")

uv.run("default")
uv.loop_close()
35 changes: 35 additions & 0 deletions examples/uvbook/pipe-echo-server.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
local uv = require("uv")

local SOCK = "/tmp/echo.sock"

local server = uv.new_pipe(false)

local ret, err, code = server:bind(SOCK)
-- if file already exists, remove it first and try again
if not ret and code == "EADDRINUSE" then
local fs = require("fs")
fs.unlinkSync(SOCK)
_, err, _ = server:bind(SOCK)
assert(not err, err)
else
assert(not err, err)
end

server:listen(128, function (err)
assert(not err, err)
local client = uv.new_pipe(false)
server:accept(client)
client:read_start(function (err, chunk)
assert(not err, err)
if chunk then
print("Got: " .. chunk)
client:write(chunk)
else
client:shutdown()
client:close()
end
end)
end)

uv.run("default")
uv.loop_close()

0 comments on commit 33d33a6

Please sign in to comment.