• 大小: 18.43MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-02
  • 语言: C/C++
  • 标签: c++  线程池  服务器  

资源简介

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\link.command.1.tlog

     文件       3524  2016-10-13 19:12  多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.tlog\link.read.1.tlog

     文件        854  2016-10-13 19:12  多线程服务器程序例子\mulThreadServer\mulThreadServer\Debug\mulThreadServer.tlog\link.write.1.tlog

     文件        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个文件信息

评论

共有 条评论