use read(), need to fix the connection close bug