资源简介
c++ 多线程 线程池服务器程序 和 客户端程序 ,这是一个已经测试过的例子,编译环境为vs2013,有兴趣的,可以下载运行学习
代码片段和文件信息
#include “stdafx.h“
#include
#include “HandleCon.h“
extern int g_ClientNum;
HandleCon::HandleCon()
{
m_handleThreadSem = CreateSemaphore(NULL 0 1 NULL);
m_useState = false;
CreateHandleThread();
}
HandleCon::~HandleCon()
{
}
unsigned WINAPI HandleCon::HandlePro(LPVOID lparam)
{
HandleCon *hPro = (HandleCon *)lparam;
while (!hPro->m_useState)
{
WaitForSingleobject(hPro->m_handleThreadSem INFINITE);
hPro->StartHandleRequst();
}
return 0;
}
void HandleCon::CreateHandleThread()
{
HANDLE hThread;
hThread = (HANDLE)::_beginthreadex(NULL 0 HandlePro (LPVOID)this 0 NULL);
}
void HandleCon::StartHandleRequst()
{
fd_set read_fds;
FD_ZERO(&read_fds);
timeval tv = { 1 0 };
char buf[MAXSIZE];
memset(buf 0 sizeof(MAXSIZE));
std::cout << “Clinet : IP ->“ << m_ip.c_str() << “ and port ->:“< while (true)
{
//从不开始收数据开始计算,如果超过OVERTIME客户端没有发来请求,服务器会断开此连接
FD_SET(m_confd &read_fds);
if (select(m_confd + 1 &read_fds 0 0 &tv) < 0)
{
std::cout << “select error“ << std::endl;
break;
}
if (FD_ISSET(m_confd &read_fds))
{
int ret = recv(m_confd buf sizeof(buf) - 1 0);
if (ret <= 0)
{
break;
}
else
{
std::cout << “[Client IP : “ << m_ip.c_str() << “ Client Port : “ << m_port << “] and [CLIENT DATA] : “ << buf << std::endl;
}
}
}
closesocket(m_confd);
m_useState = false;
g_ClientNum--;
}
void HandleCon::ReleaseOneThread(SOCKET confd std::string clientIP UINT32 clientPort)
{
m_confd = confd;
m_useState = true;
m_ip = clientIP;
m_port = clientPort;
ReleaseSemaphore(m_handleThreadSem 1 NULL);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 97280 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\Debug\mulThreadServer.exe
文件 555564 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\Debug\mulThreadServer.ilk
文件 1363968 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\Debug\mulThreadServer.pdb
文件 3538944 2016-10-11 20:37 多线程服务器程序例子\mulThreadServer\ipch\multhreadserver-ea689699\multhreadserver-62278207.ipch
文件 3080192 2016-10-13 18:54 多线程服务器程序例子\mulThreadServer\ipch\multhreadserver-ea689699\multhreadserver-93182609.ipch
文件 175008 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\HandleCon.obj
文件 267586 2016-10-13 18:49 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\HandleThreadPool.obj
文件 1372 2016-10-13 18:49 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.Build.CppClean.log
文件 1629 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.log
文件 168523 2016-10-13 18:49 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.obj
文件 1703936 2016-10-13 18:49 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.pch
文件 3050 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.tlog\cl.command.1.tlog
文件 89942 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.tlog\CL.read.1.tlog
文件 2626 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.tlog\CL.write.1.tlog
文件 1690 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.tlog\li
文件 3524 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.tlog\li
文件 854 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.tlog\li
文件 174 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.tlog\mulThreadServer.lastbuildstate
文件 11793 2016-10-13 18:49 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\stdafx.obj
文件 1051648 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\vc120.idb
文件 544768 2016-10-13 19:12 多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\vc120.pdb
文件 1772 2016-10-13 18:50 多线程服务器程序例子\mulThreadServer\mulThreadServer\HandleCon.cpp
文件 500 2016-10-13 17:06 多线程服务器程序例子\mulThreadServer\mulThreadServer\HandleCon.h
文件 1273 2016-10-13 18:30 多线程服务器程序例子\mulThreadServer\mulThreadServer\HandleThreadPool.cpp
文件 493 2016-10-13 17:51 多线程服务器程序例子\mulThreadServer\mulThreadServer\HandleThreadPool.h
文件 2222 2016-10-13 18:49 多线程服务器程序例子\mulThreadServer\mulThreadServer\mulThreadServer.cpp
文件 8148 2016-10-12 11:22 多线程服务器程序例子\mulThreadServer\mulThreadServer\mulThreadServer.vcxproj
文件 1736 2016-10-12 11:22 多线程服务器程序例子\mulThreadServer\mulThreadServer\mulThreadServer.vcxproj.filters
文件 1771 2016-10-09 21:18 多线程服务器程序例子\mulThreadServer\mulThreadServer\ReadMe.txt
文件 302 2016-10-09 21:18 多线程服务器程序例子\mulThreadServer\mulThreadServer\stdafx.cpp
............此处省略69个文件信息
相关资源
- 零基础学C++第3版 (零基础学编程)
- 数据结构与算法分析 : C++描述(第三
- VC++下的语音识别源代码
- C++面向对象程序设计教程习题解答与
- VC++远程桌面监控系统
- MFC图像处理
- 山东科技大学C++实训项目 飞机大战
- VC++深入详解(完整版)+所有源代码集
- vc2015c++安装包
- C++程序设计语言特别版题解--详细书签
- C++ GUI Qt 4编程(第二版)(中文高清
- 邓俊辉数据结构第三版c++版.pdf,高清
- 《Microsoft Visual Studio C++ 2010入门经典》
- 能对二值图像进行腐蚀、膨胀、开闭
- c++自学实践项目
- VC++图像处理程序设计PDF + 源码
- Visual C++指纹模式识别系统算法与实现
- VS2010 C++ MFC 登陆界面设计
- VC++2015,32位,64位组件运行库
- 《C++程序设计教程(第二版)》钱能
- 扫雷小游戏 完整源码
- Ply文件读取OpenGL显示
- 白塞尔大地主题解算MFC
- 《Visual C++开发基于SNMP的网络管理软件
- 数据结构与面向对象程序设计(C++版
- Thinking in C++1,2卷
- 教师住房管理系统(C++控制台)
- C++操作word:插入文字、图片、表格,
- C++ GDI+ 实现的画板程序
- 嵌入式系统的微模块化程序设计:实
评论
共有 条评论