1,不要将底层的指针暴露给应用层,如:连接对象,否则该类对象释放时的安全性将成为恶梦。
2,网络连接提供close方法的同时也要提供shutdown连接,前者为shutdown+释放资源。
3,按socket的api来。
4,应用层基于网络层api封装一下,使用智能指针包裹网络连接类,网络连接类提供shutdown方法,但close一定要在析构函数中调用。
  这样一来网络层的fd可在应用层用来map到网络连接类对象,而应用层的网络连接类对象和网络层的连接对象是一一对应的。