1.muduo之Socket类

本文详细解读了muduo库中的Socket类,包括Socket.h头文件和Socket.cc实现文件。Socket类主要用于封装socket()函数创建的文件描述符,实现了bind(), listen()和accept()等功能,并支持配置如Nagle算法、保活机制等选项。" 110818212,10199438,简易IOC实现指南,"['设计模式', 'java', 'spring', 'XML解析']
摘要由CSDN通过智能技术生成

前言:每篇阅读某个类的文章,我都会将头文件放在第一部分注释,cc文件放在第二部注释。仅当作我作为学习muduo库的记录。

该类主要作用:Socket类其实就是对于一个调用过socket()函数所生成的文件描述符sockfd的一个封装,该类里面主要实现了bind()和listen()函数的功能,还有accpet()。还可设置sockfd的各种属性,比如开启Nagle算法,保活机制等,

1. Socket.h头文件

/// sockfd的封装类
/// 销毁对象时会关闭sockfd
/// 该类是线程安全的,所有的操作会委托操作系统完成
class Socket : noncopyable
{
   
 public:
  explicit Socket(int sockfd)
    : sockfd_(sockfd)	
  {
    }

  // Socket(Socket&&) // move constructor in C++11
  ~Socket();

  int fd() const {
    return sockfd_; }
  // 调用成功返回true
  bool getTcpInfo(struct tcp_info*) const;
  bool getTcpInfoString(char* buf, int len) const;

  /// 如果地址已经被使用了就中断
  void bindAddress(const InetAddress& localaddr);	//绑定ip和port操作
  void listen();	//开启监听操作
  
  ///成功时,返回一个非负整数的文件描述符,它被设置SOCK_NONBLOCK和SOCK_CLOEXEC属性,
  ///peeraddr对象内容被赋值。失败时,返回-1,并且peeraddr对象没被赋值
  int accept(InetAddress* peeraddr);	
  
  //关闭写端
  void shutdownWrite();
  ///
  /// 是否设置TCP_NODELAY选项(是否开启Nagle算法)
  ///
  void setTcpNoDelay(bool on);
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值