1. result, listen_socket = tcp.listen(addr, port[, backlog, [void (*listen_callback)(result, listen_socket, addr, port[, backlog])]]) --listen_callback is a once callback, blocking if callback is nil. 2. result, listen_socket = tcp.listens(sock_name[, void (*listen_callback)(result, listen_socket, sock_name)]) --listen_callback is a once callback, blocking if callback is nil. 3. result, listen_socket = tcp.listen6(addr, port[, backlog, [void (*listen_callback)(result, listen_socket, addr, port[, backlog])]]) --listen_callback is a once callback, blocking if callback is nil. 4. result, accept_socket = tcp.accept(listen_socket[, timeout]) --accept_callback is a continues callback, blocking if callback is nil. 5. result, accept_socket = tcp.accept(listen_socket[, void (*accept_callback)(result, accept_socket, listen_socket)]) --accept_callback is a continues callback, blocking if callback is nil. 6. result, connect_socket = tcp.connect(host_addr, host_port[, timeout [, void (*connect_callback)(result, connect_socket, host_addr, host_port[, timeout])]]) --connect_callback is a once callback, blocking if callback is nil. 7. result, connect_socket = tcp.connects(sock_name[, timeout [, void (*connect_callback)(result, connect_socket, host_addr, host_port[, timeout])]]) --connect_callback is a once callback, blocking if callback is nil. 8. result, connect_socket = tcp.connect6(host_addr, host_port[, timeout [, void (*connect_callback)(result, connect_socket, host_addr, host_port[, timeout])]]) --connect_callback is a once callback, blocking if callback is nil. 9. result, buffer = tcp.read(socket[, timeout]) --recv_callback is a continues callback, blocking if callback is nil. 10. result, buffer = tcp.read(socket[, void (*recv_callback)(result, buffer, socket)]) --recv_callback is a continues callback, blocking if callback is nil. 11. result, error = tcp.write(socket, buffer_or_lstring[, void (*send_callback)(result, error, socket, buffer_or_lstring)/bool safety]) --send_callback is a once callback and is safety assurance, blocking until buffer_or_lstring is sent only if safety is true. 12. tcp.set_rwopt(socket, option_table) --set tcp_socket read and write options --e.g. { "read_head_endian" = "L", "read_head_bytes" = 2, "read_head_max" = 65535, } 13. tcp.get_rwopt(socket) --get tcp_socket read and write options 14. tcp.set_nodelay(socket, enable) 15. result, error = context.send(handle, data1, data2, ...) --QUERY 16. result, query_data1, query_data2, ... = context.query(handle, data1, data2, ... [, query_callback(result, query_data1, query_data2, ...)]]) --QUERY(real query) --query_callback is a once callback, blocking if callback is nil. 17. result, query_data1, query_data2, ... = context.timed_query(handle, timeout, data1, data2, ... [, query_callback(result, query_data1, query_data2, ...)]]) --QUERY(real query) --query_callback is a once callback, blocking if callback is nil. 18. result, error = context.reply(handle, session, data1, data2, ...) --REPLY 19. result, recv_handle, session, data1, data2, ... = context.recv(handle[, timeout]) --recv_callback is a continues callback, blocking if callback is nil. 20. result, recv_handle, session, data1, data2, ... = context.recv(handle[, recv_callback(result, recv_handle, session, data1, data2, ... )]) --recv_callback is a continues callback, blocking if callback is nil. 21. result, error = context.wait(handle[, timeout[, callback(result, error, handle[, timeout])]]) --connect_callback is a once callback, blocking if callback is nil. 22. timer.sleep(seconds) 23. timer.timeout(seconds, ..., void (*callback)(...)) 24. timer.loop(interval, repeat_time, ..., void (*callback)(...)) ---------------------------------------------------------------------------------------------------------------------------- 14. èèlua_serviceçgc[èèä¸ç´æ²¡æå¤éçæå¡çluaåå¾åæ¶] 17. ç ç©¶lua hookï¼å¦ä½ä¸ææ»å¾ªç¯åè°è¯(è¾å ¥) 22.to be implemented / to be fixed 23.udp http https 24.lua socket tcp socket è¿ç§» io é»å¡éé»å¡ï¼ setvbuf {"__tostring", f_tostring}, çæ´æ° ä¼ålua shared proto é,ä¸ä½¿ç¨ååé? udp tty å¨çº¿è°è¯ freebsd: 1. pkg å½ä»¤å®è£ 软件 pkgå®è£ pkgèªèº« pkg install 2. sshd æå¡å¨é ç½® /etc/ssh/sshd_config : PermitRootLogin yes 3. make å å ¶å®æä½ç³»ç»ä¸ä¸æ ·,éè¦å®è£ gmake ï½ï½ï½ï½ï½ï½ï½ãç¼è¯luaçå ±äº«dllåº,éè¦å¨ç¼è¯æ¶å¼å¯ LUA_BUILD_AS_DLL è¿ä¸ªå®(以便å¨vcä¸è¾¹ä¸ç¼è¯æ¶å¯¼åºç¬¦å·) (å¤é¨æ¨¡ååºéè¦åæ¶å¼å¯ LUA_CORE è¿ä¸ªå®,ä»¥ä¾¿ä½¿ç¨ LUAMOD_API è¿ä¸ªå®æ¥å¯¼åºluaopenæ¥å£) ï½ï½ï½ï½ï½ï½ï½ã使ç¨luaçdllæ©å±åº,éè¦æluaæ´ä¸ªæædll卿åº,主è¿ç¨åå ¶å®æ©å±åºé½éè¦ä½¿ç¨å¨æé¾æ¥luaåºçæ¹å¼æ¥ç¼è¯æçæ,ä¸ç¶luaççæ¬æ ¡éªå°ä¸ä¼éè¿(卿åºå®é 使ç¨lua.dll,ç¼è¯å龿¥æ¶ä½¿ç¨lua.lib) 妿æ¯éæåºï¼é£ä¹æ¯ä¸ªæ¨¡åå 载该éæåºåï¼æ¯ä¸ªæ¨¡åé½å嫿ä¸ä¸ªæ·è´ã妿æ¯å¨æåºï¼æ¯ä¸ªæ¨¡åå è½½è¯¥å¨æåºåï¼é½åªæä¸ä¸ªæ·è´ã http://blog.csdn.net/rheostat/article/details/18796911 Don't link your C module with liblua.a when you create a.so from it. For examples, see my page of Lua libraries: http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/ . You can link liblua.a statically into your main program but you have to export its symbols by adding -Wl,-E at link time. That's how the Lua interpreter is built in Linux. A node completation of lua which support sync and async remote procedure call, and task-multiplexing support(in muti-thread mode with no useless wakeup)