Blame doc/examples/ping.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
              

          ping.lua

          Packit 437b5e
          Packit 437b5e
          local p = require "posix"
          Packit 437b5e
          Packit 437b5e
          if p.SOCK_RAW and p.SO_BINDTODEVICE then
          Packit 437b5e
          	-- Open raw socket
          Packit 437b5e
          Packit 437b5e
          	local fd, err = p.socket(p.AF_INET, p.SOCK_RAW, p.IPPROTO_ICMP)
          Packit 437b5e
          	assert(fd, err)
          Packit 437b5e
          Packit 437b5e
          	-- Optionally, bind to specific device
          Packit 437b5e
          Packit 437b5e
          	local ok, err = p.setsockopt(fd, p.SOL_SOCKET, p.SO_BINDTODEVICE, "wlan0")
          Packit 437b5e
          	assert(ok, err)
          Packit 437b5e
          Packit 437b5e
          	-- Create raw ICMP echo (ping) message
          Packit 437b5e
          Packit 437b5e
          	local data = string.char(0x08, 0x00, 0x89, 0x98, 0x6e, 0x63, 0x00, 0x04, 0x00)
          Packit 437b5e
          Packit 437b5e
          	-- Send message
          Packit 437b5e
          Packit 437b5e
          	local ok, err = p.sendto(fd, data, { family = p.AF_INET, addr = "8.8.8.8", port = 0 })
          Packit 437b5e
          	assert(ok, err)
          Packit 437b5e
          Packit 437b5e
          	-- Read reply
          Packit 437b5e
          Packit 437b5e
          	local data, sa = p.recvfrom(fd, 1024)
          Packit 437b5e
          	assert(data, sa)
          Packit 437b5e
          Packit 437b5e
          	if data then
          Packit 437b5e
          		print("Received ICMP message from " .. sa.addr)
          Packit 437b5e
          	end
          Packit 437b5e
          end
          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>