473,320 Members | 1,978 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

CSocketComm

- 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;
}
}
}
Nov 19 '08 #1
0 1348

This thread has been closed and replies have been disabled. Please start a new discussion.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.