--****************************************************************************** --* * --* File: Socket_01.lua Revision: 1.0 * --* * --* Contents: a first experiment with UDP datagrams * --* * --* Creation: 09.03.2002 Last Modification: 09.03.2002 * --* * --* Platform: IBM-compatible PC running Windows 98SE * --* * --* Environment: Lua 4.0, TkLua 4.0, LuaSocket 1.4 * --* * --* Author: Andreas Rozek Phone: ++49 (711) 6770682 * --* Kirschblütenweg 15 Fax: - * --* D-70569 Stuttgart EMail: Andreas.Rozek@T-Online.De * --* Germany * --* * --* URL: http://www.Andreas-Rozek.de/ * --* * --* Copyright: the software is published under the "GNU Lesser General Pub- * --* lic License" (see "http://www.fsf.org/copyleft/lesser.html" * --* for additional information) * --* * --* Comments: (none) * --* * --****************************************************************************** dofile("Lua_02_Lib.lua"); -- provides extended versions of write, print, etc. print(); print("Socket_01 - a first experiment with UDP datagrams"); print(); print("creating receiver socket..."); local InSocket,ErrMsg = udpsocket(); assert(InSocket, ErrMsg); InSocket:setsockname("*",0); InAddr,InPort = InSocket:getsockname(); print("done (Address: ",InAddr,", Port: ",InPort,")"); print(); print("creating sender socket..."); local OutSocket,ErrMsg = udpsocket(); assert(OutSocket, ErrMsg); OutSocket:setsockname("*",0); OutSocket:setpeername("127.0.0.1",InPort); OutAddr,OutPort = OutSocket:getsockname(); print("done (Address: ",OutAddr,", Port: ",OutPort,")"); print(); print("sending datagram..."); OutSocket:send("Hello"); print("done"); print(); print("receiving datagram..."); local Datagram,PeerAddr,PeerPort = receivefrom(InSocket); assert(Datagram,ErrMsg); print("done (got \""..Datagram.."\" from ",PeerAddr,":",PeerPort,")"); exit();