簡體   English   中英

如何在服務器端(在我的特定情況下)驗證用戶請求?

[英]How to validate the user request in the server side (in my specific case)?

在我的客戶端服務器應用程序中,客戶端請求攝像機服務器發送一個或多個具有給定分辨率(寬x高)的圖像。 我已經對分辨率進行了硬編碼。

假設相機無法拍攝用戶要求的指定尺寸的圖像。 在這種情況下,服務器必須處理該請求並采取適當的措施(例如,讓用戶知道大小無效或再次輸入)。 有人可以給我任何提示我該如何實施嗎? 或者,如果有人可以用比我現在做的更好的方法來提示我。 我可能不需要任何代碼(如果有人可以回答它,那很好),我只需要理論上的解釋即可。 感謝您的關注。

我的工作代碼[如果需要完整的代碼,請提出要求]:

客戶:

   printf("chose resolution\nsmall = 1 \nmedium = 2 \nlarge = 3 \nelse defualt\n  ");
    cin >> res;
    if (res == 1) {
        char rr[10] = { "160x120" };
        strcat(RES, rr); // store the rr (160x120) into RES
    }   else if (res == 2) {
        char rr[10] = { "640x480" };
        strcat(RES, rr);
    }   else if (res == 3) {
        char rr[10] = { "1024x768" };
        strcat(RES, rr);
    }
    else {
        char rr[10] = { "320x200" };
        strcat(RES, rr);
    }

服務器:

for (;;) {

            recv(sock_CONNECTION,fps_res, sizeof(fps_res),NULL);

            stream = capture_open_stream(IMAGE_JPEG, fps_res);

            for(;;)
            {
            int Sbytes=0;
            frame        = capture_get_frame(stream);
            data = capture_frame_data(frame);

            int size = capture_frame_size(frame);

            send(sock_CONNECTION,(char*)&size,sizeof(int),NULL);
            Sbytes=send(sock_CONNECTION,data, size, NULL);


            capture_frame_free(frame);

            if(Sbytes<0){

            break;

            }

            }
            exit(0);

    }

在此代碼行之后獲取框架的大小,並與客戶端框架進行比較。 還要檢查您是否從客戶端收到了基於幀的原始請求。

int size = capture_frame_size(frame);

在上面的代碼行之后,請檢查是否已根據原始請求接收到框架。 如果未發送錯誤消息給客戶端,則請求分辨率的幀不可用。

如果還不清楚,請通知我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM