thrift之TTransport层的堵塞的套接字I/O传输类TSocket

17 篇文章 2 订阅
本文详细介绍了TSocket类,它是Thrift中基于TCP socket实现TTransport接口的类。TSocket提供了多种构造函数以适应不同场景,包括普通TCP连接、UNIX域套接字等。在打开连接过程中,针对UNIX Domain Socket和普通网络socket有不同的实现。在读写操作中,TSocket处理了EAGAIN错误,确保在超时和系统资源耗尽情况下能进行适当处理。此外,还讨论了错误处理和重试机制,确保了传输的稳定性和容错性。
摘要由CSDN通过智能技术生成
本节将介绍第一个实现具体传输功能的类TSocket,这个类是基于TCP socket实现TTransport的接口。下面具体介绍这个类的相关函数功能实现。
  1.构造函数
  分析一个类的功能首先看它的定义和构造函数实现,先看看它的定义:
class TSocket : public TVirtualTransport<TSocket> { ......}
  由定义可以看书TSocket继承至虚拟传输类,并且把自己当做模板参数传递过去,所以从虚拟传输类继承下来的虚拟函数(如read_virt)调用非虚拟函数(如read)就是TSocket自己实现的。
  TSocket类的构造函数有4个,当然还有一个析构函数。四个构造函数就是根据不同的参数来构造,它们的声明如下:
  TSocket();//所有参数都默认
  TSocket(std::string host, int port);//根据主机名和端口构造一个socket
  TSocket(std::string path);//构造unix域的一个socket
  TSocket(int socket);//构造一个原始的unix句柄socket
  四个构造函数分别用于不同的情况下来产生不同的TSocket对象,不过这些构造函数都只是简单的初始化一些最基本的成员变量&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔷薇理想人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值