diff options
Diffstat (limited to 'reference/networking.md')
| -rw-r--r-- | reference/networking.md | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/reference/networking.md b/reference/networking.md new file mode 100644 index 0000000..087dd95 --- /dev/null +++ b/reference/networking.md @@ -0,0 +1,40 @@ +# Networking example
+
+A simple example of networking, ripped straight from the brok[en]gine test suite.
+
+
+### Client
+
+ local has_ponged = false
+ local socket = net.newsocket(net.PAIR)
+ socket:bind("tcp://127.0.0.1:5555")
+ function socket:receive(stream)
+ print("socket receive triggered")
+ has_ponged = true
+ local message = stream:readstring()
+ assert(message == "ping")
+ socket:send(function(stream2)
+ stream2:writestring("pong")
+ end)
+ end
+ local i = os.time()
+ function GAME.tick()
+ if has_ponged then
+ GAME.exit()
+ end
+ if i - os.time() > 5 then
+ error("Failed")
+ end
+ end
+
+### Server
+
+ local socket = net.newsocket(net.PAIR)
+ socket:connect("tcp://127.0.0.1:5555")
+ function socket:receive(stream)
+ local message = stream:readstring()
+ assert(message == "pong")
+ end
+ socket:send(function(stream)
+ stream:writestring("ping")
+ end)
|
