說明服務器
Thrift服務器端採用的是Boost庫的智能指針保存客戶端的鏈接對象,所以當建立的服務線程正常退出的時候,對象會自動銷燬,不須要手動調用任何的銷燬函數socket
void TSocket::close() {
if (socket_ != -1) {ide
#ifdef _WIN32
shutdown(socket_, SD_BOTH);
::closesocket(socket_);
#else
shutdown(socket_, SHUT_RDWR);
::close(socket_);
#endif函數
}
socket_ = -1;
}線程
客戶端鏈接的套接字在這裏進行了關閉指針
/**
* Wraps a transport into a buffered one.
*
*/
class TBufferedTransportFactory : public TTransportFactory {
public:
TBufferedTransportFactory() {}對象
virtual ~TBufferedTransportFactory() {}get
/**
* Wraps the transport into a buffered one.
*/
virtual boost::shared_ptr<TTransport> getTransport(boost::shared_ptr<TTransport> trans) {
return boost::shared_ptr<TTransport>(new TBufferedTransport(trans));
}it
};class