示例#1
0
inline int IPString2Int(cf_cpstr ip,cf_uint32 & rsl)
{
    struct in_addr s;      // IPv4地址结构体
    int rt =inet_pton(AF_INET, ip, (void *)&s);
    rsl =cf_uint32(s.s_addr);
    return rt;
}
    cf_uint32 ReadPid()
    {
        char p [MAX_SIZE];
        GetPathByPathNameExt(_filePathName.c_str(), _filePathName.size() , p);
        if(0==IsFileExist(p))
        {
            _THROW_FMT(RuntimeWarning, "Failed access file %s !",p);
        }

        _fd =cf_open(_filePathName.c_str(),O_RDWR,S_IRWXU | S_IRWXG | S_IROTH);
        if(-1==_fd)
        {
            _THROW(SyscallExecuteError, "Failed to execute cf_open !");
        }
        char buf[8] = {0};
        ssize_t nr =cf_read(_fd,buf,sizeof(buf));
        if(nr<=0)
        {
            _THROW_FMT(ValueError, "Failed cf_read ! nr=%d ",int(nr));
        }
        return cf_uint32(atoi(buf));
    }
示例#3
0
cf_pvoid Run(void * p)
{
    CF_PRINT_FUNC;
    int index =*((int *)p);
    cf_fd sockfd=g_vecSock[index];
    //    printf("index=%d,sockfd=%d \n",index,sockfd);
    ssize_t hasSent =0;
    ssize_t hasRecv =0;
    ssize_t shouldRecv =0;
    bool peerClosedWhenRead =false;

    cf_uint64 seconds =0;
    cf_uint32 useconds =0;
    cf::Gettimeofday(seconds, useconds);

    for(int k=0; k<g_times; k++) // send times
    {
        std::string & body =g_vecStr[k];
        hasSent =0;
        bool succ =cf::SendSegmentSync(sockfd,body.c_str(), body.size(),hasSent,8000,
                                       body.size());
        if(succ)
        {
#if 1
            fprintf(stderr,"tid=%u,Sent succeeded ! hasSent=%d ,k=%d ",TID,int(hasSent),k);
            fprintf(stderr,"tid=%u,buff=%s \n",TID,body.c_str()+HEADER_LEN);
#endif
        }
        else
            fprintf(stderr,"tid=%u,Warning,Send timeout ! \n",TID);
        if(hasSent!=(cf_uint32)body.size())
            fprintf(stderr,"tid=%u,Warning,Recved len{%u}!=body.size(){%u}! \n",TID,
                    (cf_uint32)hasSent,(cf_uint32)(body.size()));

        peerClosedWhenRead =false;
        hasRecv =0;
        shouldRecv =hasSent-HEADER_LEN;
        succ =cf::RecvSegmentSync(sockfd,&g_bufrecv[0], shouldRecv,hasRecv,
                                  peerClosedWhenRead,8000);
        if(succ)
        {
#if 1
            fprintf(stderr,"tid=%u,Recv succeeded ! hasRecv=%d ,k=%d ,",TID,int(hasRecv),k);
            fprintf(stderr,"tid=%u,buff=%s \n",TID,g_bufrecv.c_str());
#endif
        }
        else
            fprintf(stderr,"tid=%u,Warning,Recv timeout ! \n",TID);
        if(hasRecv!=shouldRecv)
            fprintf(stderr,
                    "tid=%u,Warning,Recved hasRecv{%u}!=shouldRecv{%u}! peerClosedWhenRead=%u \n",
                    TID,
                    (cf_uint32)hasRecv,(cf_uint32)shouldRecv,cf_uint32(peerClosedWhenRead));
    }

#if 1
    fprintf(stderr,"tid=%u,cf_close!\n",TID);
#endif
    cf_close(sockfd);
    return NULL;
}