CSocketComm

Discussion in 'C++' started by Carl Forsman, Nov 19, 2008.

  1. Carl Forsman

    Carl Forsman Guest

    - 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;
    m_nReceiveIndex = (m_nReceiveIndex + 1) %
    RECEIVE_BUFFER_SIZE;
    if (lpBuffer == '\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;
    }
    }
    }
    Carl Forsman, Nov 19, 2008
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page