[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cinvoke-svn] r113 - trunk/cinvoke/bindings/lua
From: |
will |
Subject: |
[cinvoke-svn] r113 - trunk/cinvoke/bindings/lua |
Date: |
25 Oct 2006 14:34:40 -0400 |
Author: will
Date: 2006-10-25 14:34:39 -0400 (Wed, 25 Oct 2006)
New Revision: 113
Added:
trunk/cinvoke/bindings/lua/socket.lua
Log:
socket example
Added: trunk/cinvoke/bindings/lua/socket.lua
===================================================================
--- trunk/cinvoke/bindings/lua/socket.lua (rev 0)
+++ trunk/cinvoke/bindings/lua/socket.lua 2006-10-25 18:34:39 UTC (rev
113)
@@ -0,0 +1,45 @@
+require("cinvoke_lua")
+
+libc = clibrary.new("libc.so.6")
+
+sockaddr_in = cstructure.new(
+ Cshort, "sin_family",
+ Cshort, "sin_port",
+ Cint, "in_addr",
+ Cint64, "sin_zero")
+
+sock = libc:get_function(Cint , "socket", Cint, Cint, Cint)
+lstn = libc:get_function(Cint,"listen", Cint, Cint)
+bnd = libc:get_function(Cint, "bind", Cint, cinv.array(sockaddr_in), Cint)
+acpt = libc:get_function(Cint, "accept", Cint, cinv.array(sockaddr_in),
cinv.array(Cint))
+inet_ntoa = libc:get_function(Cstring, "inet_ntoa", Cint)
+close = libc:get_function(Cint, "close", Cint)
+
+PORT = 47115 -- 3000 in reverse byte order
+
+nsock = sock(2, 1, 0)
+myaddr = {
+ sin_family = 2,
+ sin_port = PORT,
+ in_addr = 0,
+ sin_zero = 0
+}
+
+bnd(nsock, { myaddr }, 16)
+lstn(nsock, 10)
+print ("Listening...")
+while 1 do
+ claddr = {}
+ claddr[1] = {
+ sin_family = 0,
+ sin_port = 0,
+ in_addr = 0,
+ sin_zero = 0
+ }
+ len = 16
+ clsock = acpt(nsock, claddr, {len})
+
+ print("Got a connection from " .. inet_ntoa(claddr[1].in_addr))
+
+ close(clsock)
+end
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cinvoke-svn] r113 - trunk/cinvoke/bindings/lua,
will <=