new file:   socket_ext.lua