меня смотрели много хорошего примера, но я не нашел
если кто-то может помочь, пожалуйста, помогите мне, это мой текущий класс
#include "StdAfx.h"
#include "TNetwork.h"
//-----------------------------------------------------------------------------------------------------------------------
CNetwork::CNetwork(io_service & io_service) : m_IoService(io_service), m_Acceptor(new ip::tcp::acceptor(io_service))
{
m_AcceptMutex.initialize();
}
//-----------------------------------------------------------------------------------------------------------------------
void CNetwork::setConnector(void (*THISFUNC) (int))
{
m_Connector = THISFUNC;
}
//-----------------------------------------------------------------------------------------------------------------------
void CNetwork::setReceiver(void (*THISFUNC) (int, u_char * , int))
{
m_Receiver = THISFUNC;
}
//-----------------------------------------------------------------------------------------------------------------------
void CNetwork::setDisconnector(void (*THISFUNC) (int))
{
m_Disconnector = THISFUNC;
}
//-----------------------------------------------------------------------------------------------------------------------
bool CNetwork::start(USHORT Port)
{
DWORD dwStartTick = GetTickCount();
// ----
printf("[%s][Starting ...]\n", __FUNCTION__);
// ----
ip::tcp::endpoint selfpoint(ip::tcp::v4(), Port);
// ----
m_Acceptor->open(selfpoint.protocol());
m_Socket = new ip::tcp::socket(m_IoService);
// ----
try
{
m_Acceptor->bind(selfpoint);
m_Acceptor->listen();
}
catch(std::exception & e)
{
printf("[%s][%s]\n", __FUNCTION__, e.what());
// ----
return false;
}
// ----
printf("[%s][Started OK , within %u milisecond(s)]\n", __FUNCTION__, (GetTickCount() - dwStartTick));
// ----
ip::tcp::socket * temp = new ip::tcp::socket(m_IoService);
m_Acceptor->async_accept( * temp, boost::bind(& CNetwork::acceptor, this, temp, boost::asio::placeholders::error));
// ----
return true;
}
//-----------------------------------------------------------------------------------------------------------------------
void CNetwork::acceptor(ip::tcp::socket * socket, const boost::system::error_code & error)
{
if(error <= 0)
{
m_AcceptMutex.lock();
// ----
printf("[%s][New connection : %d.]\n", __FUNCTION__, m_Clients.size());
m_Clients.push_back(socket);
// ----
if(m_Connector != NULL)
{
m_Connector(m_Clients.size());
}
// ----
m_AcceptMutex.unlock();
// ----
//socket->async_receive(boost::asio::buffer(m_buffers),
}
else
{
printf("[%s][%s]\n", __FUNCTION__, error.message());
}
// ----
ip::tcp::socket * temp = new ip::tcp::socket(m_IoService);
// ----
// ----
m_Acceptor->async_accept( * temp, boost::bind(& CNetwork::acceptor, this, temp, boost::asio::placeholders::error));
}
//-----------------------------------------------------------------------------------------------------------------------
но я не знаю как получить
и как я буду отправлять всем клиентам список
У кого-нибудь есть хороший пример, поделитесь им, или
объясните мне, как продолжить мой урок
я пытаюсь это использовать.