learn connect(), listen() and accept()