Example #1
0
int _tmain(int argc, _TCHAR* argv[])
{
    char szBuffer[100];
    BZ_ZeroMemory(szBuffer, 100);

    BFile file;
    BZ_PROCESS_ERROR(file.Open("ReadMe.txt", "r+") == TRUE);
    BZ_DEBUG_PRINT_BOOL(file.IsOpen());
    BZ_DEBUG_PRINT_INT(file.Size());
    BZ_DEBUG_PRINT_BOOL(file.Flush());
    BZ_DEBUG_PRINT_BOOL(file.IsEof());
    BZ_DEBUG_PRINT_BOOL(file.SeekEnd(0));
    BZ_DEBUG_PRINT_BOOL(file.IsEof());
    BZ_DEBUG_PRINT_INT(file.Read(szBuffer, 100, 1));
    BZ_DEBUG_PRINT_BOOL(file.IsEof());
    BZ_DEBUG_PRINT_BOOL(file.SeekBegin(0));
    //BZ_DEBUG_PRINT_BOOL(file.WriteLine("abc"));

    while(file.ReadLine(szBuffer, 100)) 
    {
        printf("%s", szBuffer);
        //file.Read(szBuffer, 100, 1);
        BZ_ZeroMemory(szBuffer, 100);
    }

    BZ_DEBUG_PRINT_INT(file.Tell());
    BZ_DEBUG_PRINT_INT(file.Write("abc abc", 7, 7));
    
    BZ_DEBUG_PRINT_BOOL(file.Close());

Exit0:
    return 0;
}
Example #2
0
INT BSocketAcceptor::Wait(IN HANDLE hIocp, OUT BSocketStream &skStream)
{
    BZ_CHECK_RETURN_CODE(INVALID_HANDLE_VALUE != hIocp 
        && NULL != hIocp, -1);

    skStream.Close();
    skStream.UnInit();

    sockaddr_in          saRemoteAddr;
    SOCKET               hRemoteSocket = INVALID_SOCKET;
    BOOL   bRetCode                    = FALSE;
    INT    nAddrLen                    = sizeof(struct sockaddr_in);
    BZ_ZeroMemory(&saRemoteAddr, nAddrLen);

    hRemoteSocket = ::accept(m_hListenSocket, (sockaddr *)&saRemoteAddr, &nAddrLen);
    BZ_PROCESS_ERROR(INVALID_SOCKET != hRemoteSocket);

    skStream.Init(hRemoteSocket, ::inet_ntoa(saRemoteAddr.sin_addr),
        saRemoteAddr.sin_port);

    hIocp = ::CreateIoCompletionPort((HANDLE)hRemoteSocket, 
        hIocp,
        (ULONG_PTR)&skStream, 
        0);
    return 0;

Exit0:
    if (INVALID_SOCKET == hRemoteSocket)
    {
        return ::WSAGetLastError();
    }

    return -1;
}
Example #3
0
INT BSocketAcceptor::Init(CONST std::string &strIpAddress, CONST USHORT &usPort)
{
    m_strIpAddress  = strIpAddress;
    m_usPort        = usPort;
    m_hListenSocket = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    BZ_PROCESS_ERROR(INVALID_SOCKET != m_hListenSocket);

    INT         retCode;
    sockaddr_in saLocalAddr;
    BZ_ZeroMemory(&saLocalAddr, sizeof(sockaddr_in));
    saLocalAddr.sin_family      = AF_INET;
    saLocalAddr.sin_port        = htons(usPort);
    saLocalAddr.sin_addr.s_addr = 
        ('\0' == strIpAddress[0] ? INADDR_ANY : 
                                   ::inet_addr(m_strIpAddress.c_str()));

    retCode = ::bind(m_hListenSocket, (sockaddr *)(&saLocalAddr), sizeof(sockaddr_in));
    BZ_PROCESS_ERROR(SOCKET_ERROR != retCode);

    retCode = ::listen(m_hListenSocket, BZ_MAX_BACK_LOG_NUM);
    BZ_PROCESS_ERROR(SOCKET_ERROR != retCode);
    return 0;

Exit0:
    BZ_CloseSocket(m_hListenSocket);
    return ::WSAGetLastError();
}