随笔分类 -  C++网络模型

摘要:一:服务器代码: 1.ServerDlg.cpp中启动或停止服务器 CIOCPServer *iocp; void CServerDlg::OnBnClickedOk2() { iocp->StartServer(10000, AfxGetMainWnd()); } 2. IOCPServer.h和 阅读全文
posted @ 2020-11-09 00:32 zwj鹿港小镇 阅读(220) 评论(0) 推荐(0) 编辑
摘要:一、线程池的基本原理在传统服务器架构中, 常常是有一个总的监听线程监听有没有新的用户连接服务器, 每当有一个新的用户连接进入, 服务器端就开启一个新的线程去处理这个用户的请求,与其进行数据的收发。这个线程只服务于这个用户, 当用户与服务器端关闭连接以后, 服务器端才销毁这个线程。然而频繁地开辟与销毁 阅读全文
posted @ 2020-11-09 00:20 zwj鹿港小镇 阅读(144) 评论(0) 推荐(0) 编辑
摘要:一、简介 ”完成端口“模型是迄今为止最复杂的一种I/O模型,但是,若一个应用程序要同时需要管理很多套接字,那么采用这种模型,往往可以达到最佳系统性能,随着系统内安装的CPU数量增加,应用程序的性能也可能线性提升。 大家可以这样理解,一个完成端口其实就是一个完成I/O的通知队列,由操作系统把已完成的重 阅读全文
posted @ 2020-11-06 10:13 zwj鹿港小镇 阅读(113) 评论(0) 推荐(0) 编辑
摘要:1.select: select本质上是通过设置或者检查存放fd标志位的数据结构数据结构来进行下一步的处理,时间复杂度:O(n) 缺点: 1)、每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大; 2)、同时每次调用select都需要在内核遍历传递进来的所有fd, 阅读全文
posted @ 2020-10-23 14:26 zwj鹿港小镇 阅读(784) 评论(0) 推荐(0) 编辑
摘要:在三的基础上增加多线程,提高了服务器处理客户端数据的能力,客户端尽可能的实现了高并发,此版本只是客户端给服务器发消息,服务器不给客户端回消息。 Server部分:一共4个文件(server.cpp,EasyTcpServer.hpp,MessageHeader.hpp和CELLTimestamp.h 阅读全文
posted @ 2020-08-16 22:24 zwj鹿港小镇 阅读(161) 评论(0) 推荐(0) 编辑
摘要:在二的基础上收发数据进行了改进(数据接收增加了二次缓存),提供吞吐量。 Server部分:一共4个文件(server.cpp,EasyTcpServer.hpp,MessageHeader.hpp和CELLTimestamp.hpp) server.cpp: #include"EasyTcpServ 阅读全文
posted @ 2020-08-08 11:04 zwj鹿港小镇 阅读(142) 评论(0) 推荐(0) 编辑
摘要:此版本在之前一的基础上进行了封装 Server部分:一共3个文件(server.cpp,EasyTcpServer.hpp和MessageHeader.hpp) server.cpp: #include"EasyTcpServer.hpp" #include<thread> void CmdThre 阅读全文
posted @ 2020-07-31 20:40 zwj鹿港小镇 阅读(180) 评论(0) 推荐(0) 编辑
摘要:服务器: #define _CRT_SECURE_NO_WARNINGS #define WIN32_LEAN_AND_MEAN #define _AFXDLL #include"afx.h" #include<windows.h> #include "WinSock2.h" #include<io 阅读全文
posted @ 2020-07-07 22:55 zwj鹿港小镇 阅读(271) 评论(0) 推荐(0) 编辑
摘要:概念:WSAEventSelect模型是Windows Sockets提供的一个有用异步I/O模型。该模型允许在一个或者多个套接字上接收以事件为基础的网络事件通知。Windows Sockets应用程序在创建套接字后,调用WSAEventSelect()函数,将一个事件对象与网络事件集合关联在一起。 阅读全文
posted @ 2020-06-21 23:02 zwj鹿港小镇 阅读(226) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示