C++网络编程
文章平均质量分 72
小猪快快跑
每天进步一点点
展开
-
客户端发送消息后muduo是怎么运行的
这篇文章承接于我的上两篇文章:muduo核心组件分析_小猪快快跑的博客-CSDN博客有客户端连接后muduo是怎么运行的_小猪快快跑的博客-CSDN博客如果有不正确的地方,欢迎朋友们指正。用 telnet 命令给服务器发送消息。下面的颜色代表子线程。下面是main.cc:// main.ccclass EchoServer{public: EchoServer(muduo::net::EventLoop* loop, const mud.原创 2022-04-13 22:49:25 · 272 阅读 · 0 评论 -
有客户端连接后muduo是怎么运行的
这篇文章承接于我的上一篇文章:muduo核心组件分析_小猪快快跑的博客-CSDN博客如果有不正确的地方,欢迎朋友们指正。用 telnet 命令连接服务器。在没有连接进来的时候,主线程阻塞在下面的函数(epoll_wait可以设置超时时间,这样就不阻塞了):// EPollPoller.ccTimestamp EPollPoller::poll(int timeoutMs, ChannelList* activeChannels){ int numEvents = ::epoll原创 2022-04-13 17:04:15 · 182 阅读 · 0 评论 -
muduo核心组件分析
muduo的设计真的很巧妙。不少人说这个网络库的源码剖析起来比较容易,但是我感觉里面调用来调用去还是比较复杂的。根据打印的日志分析了muduo库的流程。如果有不对的地方,欢迎朋友们指正。以 echo 为例,下面把 maic.cc, echo.h, echo.cc 整在一起了,就整在 main.cc 里。子线程设置3个。主要关注各个文件里的函数是怎样跳转的。class EchoServer{public: EchoServer(muduo::net::EventLoop* loop,原创 2022-04-13 09:42:33 · 875 阅读 · 0 评论 -
TCP的短链接和长连接
在写网络编程项目的客户端的时候,出现了这样的疑问。在什么时候连接上服务器呢?这时候的连接在我的认知里很自然的就和TCP长连接画等号。先说一下客户端的任务,在和服务器端建立通信之后完成注册、登录、注销业务。登录之后可以进行更细的业务。但是如果客户端和服务器端连上了,之后客户端却迟迟没有动手干正事,正事就是上面说的更细的业务。那这样的话岂不是在浪费服务器端的资源。这时候了解了TCP短连接。在我的认识里,TCP短连接和长连接的区别主要是三次握手和四次挥手之间的那段时间可以互发多少信息。短连接的话在客户原创 2022-03-28 11:07:39 · 3256 阅读 · 0 评论 -
《TCP IP网络编程》阅读笔记及部分《图解 TCPIP》《图解 HTTP》补充笔记
目录第一章:理解网络编程和套接字接受连接请求的套接字(接电话)socketbindlistenaccept总结一个服务器端简单代码发送连接请求的套接字(打电话)connect一个客户端简单代码运行上面的服务器和客户端程序基于 Linux 的文件操作文件描述符打开文件(open)关闭文件(close)将数据写入文件(write)读取文件中的数据(read)文件描述符与套接字的区别第二章:套接字类型与协议设置创建套接字s原创 2022-03-05 15:33:12 · 340 阅读 · 0 评论 -
C++TCP通信和广播实验开多个客户端的问题
在学习的过程中遇到了下面的问题,其实很简单,怪自己看的不够仔细。在做广播通信实验的时候,运行服务器端代码和客户端代码,正常通信。如果再打开一个客户端,后打开的客户端无法与服务器连接。出现以下提示:提示端口被占用。而在做 TCP 通信实验的时候,可以开多个客户端进行通信。原因在于广播实验的客户端需要用 bind 函数绑定端口号,有如下代码: struct sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_原创 2022-02-26 21:21:56 · 2243 阅读 · 0 评论