socket_->shutdownWrite();}}void TcpConnection::setTcpNoDelay(bool on){socket_->setTcpNoDelay(on);}void TcpConnection::connectEstablished(){loop_->assertInLoopThread();
muduo使用TcpConnection类来管理TCP连接,使用接受器Acceptor来接受连接,连接器Connector发起连接。TcpServer管理accept获得TcpConnection,生命周期由用户控制。 下图是TcpServer新建连接的相关函数调用顺序。当Channel::handleEvent()的触发条件是listening socket可读时,表明有新连接请求达到。TcpServer为新连接创建对应的TcpConnec...
在上面将Acceptor的时候提到了这个TcpConnection类,这个类主要封装了一个已建立的TCP连接,以及控制该TCP连接的方法(连接建立和关闭和销毁) ,以及该连接发生的各种事件(读/写/错误/连接)对应的处理函数,以及这个TCP连接的服务器和客户端的套接字地址信息等。 TcpConnection类和Acceptor类是兄弟关系,Acceptor用于main...
每当TcpServer accept 返回一个新的 fd 时候,就会调用 IOThread::addClient 函数,往这个 IO 线程添加一个 TcpConnection 对象。之后这个 TcpConnection 对象由 IO 线程全程进行管理。 2.2 TcpConnection 实现 接下来是重头戏了,TcpConnection 类的实现应该是 TinyRPC 框架里稍微复杂一点的地方了,因为它涉及到与客户端...
TcpConnection类的主要功能是什么? TcpConnection类如何处理客户端的连接请求? 在TcpConnection类中,如何实现数据的发送和接收? 一、介绍 每个客户端连接对应一个Connection对象,可以设置对象的onMessage、onClose等回调,同时提供了向客户端发送数据send接口与关闭连接close接口,以及其它一些必要的接口。 可以说Worker是一个...
因为此时正处于Channel::handleEvent() 中,如果析构了TcpConnection,那么它的成员channel_ 也会被析构,即导致 core dump. 也就是说TcpConnection 对象生存期要长于handleEvent() 函数,直到执行完connectDestroyed() 后才会析构。 在EventLoop(三)的基础上,在TcpConnection 构造函数中再添加: 代码语言:cpp 代码运行...
TCP连接复用(TCP Connection Reuse) TCP连接复用技术通过将前端多个客户的HTTP请求复用到后端与服务器建立的一个TCP连接上。这种技术能够大大减小服务器的性能负载,减少与服务器之间新建TCP连接所带来的延时,并最大限度的降低客户端对后端服务器的并发连接数请求,减少服务器的资源占用。 一般情况下,客户端在发送HTTP请求...
loop是TcpConnection所在的循环,name是创建时传入的连接的一些信息,state_是TcpConnection当前状态机,有连接中,断开连接中,已连接和已断开4个状态,socket是传入的文件描述符,channel是创建的通道,里面含有一个TcpConnection的一个弱指针,适当的时候提升(Channel那期博客讲过),localAddr和peerAddr是对端和本端的地址信息...
tcpConnectionRemPort Unsigned32 (0..65535) not-accessible TCP连接的远端端口号。 实现与MIB文件定义一致。 1.3.6.1.2.1.6.19.1.7 tcpConnectionState INTEGER{ closed(1), listen(2), synSent(3), synReceived(4), established(5), finWait1(6), ...
tcpConnectionState tcpConnectionProcess 该表的索引是tcpConnectionLocalAddressType、tcpConnectionLocalAddress、tcpConnectionLocalPort、tcpConnectionRemAddressType、tcpConnectionRemAddress和tcpConnectionRemPort。 OID 节点名称 数据类型 最大访问权限 含义 实现规格 1.3.6.1.2.1.6.19.1.1 tcpConnectionLocalAd...