socket_read better