Blame doc/examples/socket.lua.html

Packit 437b5e
Packit 437b5e
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Packit 437b5e
<html>
Packit 437b5e
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Packit 437b5e
<head>
Packit 437b5e
    <title>luaposix 33.3.0 Reference</title>
Packit 437b5e
    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
Packit 437b5e
</head>
Packit 437b5e
<body>
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
	
Packit 437b5e
	
<big></big>
Packit 437b5e
	
Packit 437b5e
 
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e
Packit 437b5e

Packit 437b5e

luaposix 33.3.0

Packit 437b5e
Packit 437b5e
    Packit 437b5e
      
  • Index
  • Packit 437b5e
    Packit 437b5e
    Packit 437b5e
    Packit 437b5e
    Packit 437b5e

    Examples

    Packit 437b5e
      Packit 437b5e
        
    • curses.lua
    • Packit 437b5e
        
    • dir.lua
    • Packit 437b5e
        
    • fork.lua
    • Packit 437b5e
        
    • fork2.lua
    • Packit 437b5e
        
    • getopt.lua
    • Packit 437b5e
        
    • glob.lua
    • Packit 437b5e
        
    • limit.lua
    • Packit 437b5e
        
    • lock.lua
    • Packit 437b5e
        
    • netlink-uevent.lua
    • Packit 437b5e
        
    • ping.lua
    • Packit 437b5e
        
    • poll.lua
    • Packit 437b5e
        
    • rt_sched.lua
    • Packit 437b5e
        
    • signal.lua
    • Packit 437b5e
        
    • socket.lua
    • Packit 437b5e
        
    • termios.lua
    • Packit 437b5e
        
    • tree.lua
    • Packit 437b5e
      Packit 437b5e

      Modules

      Packit 437b5e
        Packit 437b5e
          
      • posix
      • Packit 437b5e
          
      • posix.ctype
      • Packit 437b5e
          
      • posix.curses
      • Packit 437b5e
          
      • posix.dirent
      • Packit 437b5e
          
      • posix.errno
      • Packit 437b5e
          
      • posix.fcntl
      • Packit 437b5e
          
      • posix.fnmatch
      • Packit 437b5e
          
      • posix.getopt
      • Packit 437b5e
          
      • posix.glob
      • Packit 437b5e
          
      • posix.grp
      • Packit 437b5e
          
      • posix.libgen
      • Packit 437b5e
          
      • posix.poll
      • Packit 437b5e
          
      • posix.pwd
      • Packit 437b5e
          
      • posix.sched
      • Packit 437b5e
          
      • posix.signal
      • Packit 437b5e
          
      • posix.stdio
      • Packit 437b5e
          
      • posix.stdlib
      • Packit 437b5e
          
      • posix.sys.msg
      • Packit 437b5e
          
      • posix.sys.resource
      • Packit 437b5e
          
      • posix.sys.socket
      • Packit 437b5e
          
      • posix.sys.stat
      • Packit 437b5e
          
      • posix.sys.statvfs
      • Packit 437b5e
          
      • posix.sys.time
      • Packit 437b5e
          
      • posix.sys.times
      • Packit 437b5e
          
      • posix.sys.utsname
      • Packit 437b5e
          
      • posix.sys.wait
      • Packit 437b5e
          
      • posix.syslog
      • Packit 437b5e
          
      • posix.termio
      • Packit 437b5e
          
      • posix.time
      • Packit 437b5e
          
      • posix.unistd
      • Packit 437b5e
          
      • posix.utime
      • Packit 437b5e
        Packit 437b5e

        Classes

        Packit 437b5e
          Packit 437b5e
            
        • posix.curses.chstr
        • Packit 437b5e
            
        • posix.curses.window
        • Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
              

          socket.lua

          Packit 437b5e
          Packit 437b5e
          local sig    = require "posix.signal"
          Packit 437b5e
          local sock   = require "posix.sys.socket"
          Packit 437b5e
          local unistd = require "posix.unistd"
          Packit 437b5e
          Packit 437b5e
          sig.signal (sig.SIGPIPE, function () print "pipe" end)
          Packit 437b5e
          Packit 437b5e
          -- Get Lua web site title
          Packit 437b5e
          local r, err = sock.getaddrinfo ("www.lua.org", "http", { family = sock.AF_INET, socktype = sock.SOCK_STREAM })
          Packit 437b5e
          if not r then error (err) end
          Packit 437b5e
          Packit 437b5e
          local fd = sock.socket (sock.AF_INET, sock.SOCK_STREAM, 0)
          Packit 437b5e
          local ok, err, e = sock.connect (fd, r[1])
          Packit 437b5e
          local sa = sock.getsockname(fd)
          Packit 437b5e
          print("Local socket bound to " .. sa.addr .. ":" .. tostring(sa.port))
          Packit 437b5e
          if err then error (err) end
          Packit 437b5e
          Packit 437b5e
          sock.send (fd, "GET / HTTP/1.0\r\nHost: www.lua.org\r\n\r\n")
          Packit 437b5e
          local data = {}
          Packit 437b5e
          while true do
          Packit 437b5e
          	local b = sock.recv (fd, 1024)
          Packit 437b5e
          	if not b or #b == 0 then
          Packit 437b5e
          		break
          Packit 437b5e
          	end
          Packit 437b5e
          	table.insert (data, b)
          Packit 437b5e
          end
          Packit 437b5e
          unistd.close (fd)
          Packit 437b5e
          data = table.concat (data)
          Packit 437b5e
          print (data:match "<TITLE>(.+)</TITLE>")
          Packit 437b5e
          Packit 437b5e
          -- Loopback UDP test, IPV4 and IPV6
          Packit 437b5e
          local fd = sock.socket (sock.AF_INET6, sock.SOCK_DGRAM, 0)
          Packit 437b5e
          sock.bind (fd, { family = sock.AF_INET6, addr = "::", port = 9999 })
          Packit 437b5e
          sock.sendto (fd, "Test ipv4", { family = sock.AF_INET, addr = "127.0.0.1", port = 9999 })
          Packit 437b5e
          sock.sendto (fd, "Test ipv6", { family = sock.AF_INET6, addr = "::", port = 9999 })
          Packit 437b5e
          for i = 1, 2 do
          Packit 437b5e
          	local ok, r = sock.recvfrom (fd, 1024)
          Packit 437b5e
          	if ok then
          Packit 437b5e
          		print (ok, r.addr, r.port)
          Packit 437b5e
          	else
          Packit 437b5e
          		print (ok, r)
          Packit 437b5e
          	end
          Packit 437b5e
          end
          Packit 437b5e
          unistd.close (fd)
          Packit 437b5e
          Packit 437b5e
          os.exit (0)
          Packit 437b5e
          Packit 437b5e
          Packit 437b5e
           
          Packit 437b5e
           
          Packit 437b5e
          Packit 437b5e
          generated by LDoc 1.4.3
          Packit 437b5e
          Last updated 2015-03-01 09:06:02 
          Packit 437b5e
           
          Packit 437b5e
           
          Packit 437b5e
          </body>
          Packit 437b5e
          </html>