optimize: use sock:send(array-table) to avoid table.concat