如何在服务器端验证用户请求(在我的特定情况下)?

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);

在上面的代码行之后,检查您是否收到了基于原始请求的帧。如果不向客户端发送错误消息,则请求分辨率的帧不可用。

如果还不清楚,请告诉我。