如何在服务器端验证用户请求(在我的特定情况下)?
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);
在上面的代码行之后,检查您是否收到了基于原始请求的帧。如果不向客户端发送错误消息,则请求分辨率的帧不可用。
如果还不清楚,请告诉我。
在我的客户端服务器应用程序中,客户端请求相机服务器发送一张或多张具有给定分辨率(宽 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);
在上面的代码行之后,检查您是否收到了基于原始请求的帧。如果不向客户端发送错误消息,则请求分辨率的帧不可用。
如果还不清楚,请告诉我。