[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.c++

CSocketComm

Carl Forsman

11/19/2008 3:50:00 AM

- I have a class that extends CSocketComm, it is a socket server

- after client send data to server (OnDataReceived function), how can
I send back some data to client? i think i should put the code inside
(OnDataReceived function).

- Currently (OnDataReceived function) only receive data from client
and insert data into a link list - (m_listMessages)

- any example code on response data back to client like -
<resp><picID>2</picID></resp>


========================
class CVirtualScreen
: public CInterfaceGroup
, public CSocketComm
{

========================
bool CVirtualScreen::StartServer() {
bool bSuccess = true;
if (bSuccess == true) {
SetSmartAddressing( false );
bSuccess =
CreateSocket(g_Configuration.m_szServerPort, AF_INET, SOCK_STREAM, 0);
}
if (bSuccess == true) {
SetServerState(true);
SockAddrIn saddr_in;
GetSockName(saddr_in);
ULONG ulIPAddr = saddr_in.GetIPAddr();
LPBYTE pbtIPAddr = (LPBYTE)&ulIPAddr;
}
if (bSuccess == true) {
bSuccess = WatchComm();
}
return bSuccess;
}
========================
void CVirtualScreen::OnDataReceived(const LPBYTE lpBuffer, DWORD
dwCount)
{
for (DWORD i = 0; i < dwCount; i++) {
m_bReceiveBuffer[m_nReceiveIndex] = lpBuffer[i];
m_nReceiveIndex = (m_nReceiveIndex + 1) %
RECEIVE_BUFFER_SIZE;
if (lpBuffer[i] == '\n') {
m_bReceiveBuffer[m_nReceiveIndex] = 0;
EnterCriticalSection(&m_CriticalSection);
m_listMessages.push_back(std::string((const
char*)m_bReceiveBuffer));
LeaveCriticalSection(&m_CriticalSection);
m_nReceiveIndex = 0;
}
}
}