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

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

本文关键字:我的 情况下 请求 服务器端 验证 用户      更新时间:2023-10-16

在我的客户端服务器应用程序中,客户端请求相机服务器发送一个或多个具有给定分辨率(宽 x 高)的图像。我已经对分辨率进行了硬编码。

假设相机无法拍摄用户请求的指定大小的图像。在这种情况下,服务器必须处理该请求并采取适当的操作(例如,让用户知道大小无效,或再次输入)。有人可以给我任何提示如何实现吗?或者,如果有人能告诉我比我现在做的更好的方法。我可能不需要任何代码(如果有人可以用它回答,那很好),我只需要一个理论上的解释。感谢您的关注。

我的工作代码[如果需要完整的代码,请索取]:

客户:

   printf("chose resolutionnsmall = 1 nmedium = 2 nlarge = 3 nelse defualtn  ");
    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);

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

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

相关文章: