LR socket接收資料 標準函數,結構體解析

來源:互聯網
上載者:User

標籤:

 

//接收 
DWORD RecvBuf(char* cRecvBuf,char* cSocketName,char* cBufName)
{
    int ret=0;
    char * cRecvdata=0;
    int iRecvdatalen=0;
    DWORD begin=0,cur=0;
    begin=clock();
    while(1)
    {
        ret=lrs_receive(cSocketName,cBufName,LrsLastArg);    
        switch(ret)
        {
        case 0:
        case LRS_RECV_MISMATCH :
            ret=lrs_get_last_received_buffer(cSocketName,&cRecvdata,&iRecvdatalen);
            if(ret)
            {
                lr_error_message("last_recv擷取接收緩衝區出錯,錯誤碼:%d",ret);
                lrs_free_buffer(cRecvdata);
                return ERROR;
            }
            if(iRecvdatalen)
            {
memcpy(cRecvBuf,cRecvdata,iRecvdatalen);
                lrs_free_buffer(cRecvdata);
                return SUCCESS;
            }
            cur=clock();
            if((cur-begin)>=10000)
            {
                lr_error_message ("接收逾時,接收等待時間=%d毫秒",cur-begin);
                return ERROR;
            }
            continue;
        default:
            lr_error_message ("recv接收資料出錯,錯誤碼:%d",ret);
            return ERROR;
        }//end switch
    }//end while
    return SUCCESS;
} 

 

 

ret=RecvBuf(cRecvBuf,"socket0","buf10");
lr_error_message("get string :%s",cRecvBuf);
pHead=(Head *)cRecvBuf;
lr_error_message("get string :%d",pHead->iPackageType);

註:需要在data裡注意  


recv buf10 12

LR socket接收資料 標準函數,結構體解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.