如何在服务器端验证用户请求(在我的特定情况下)
How to validate the user request in the server side (in my specific case)?
在我的客户端服务器应用程序中,客户端请求相机服务器发送一个或多个具有给定分辨率(宽 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);
在上面的代码行之后,检查您是否收到了基于原始请求的帧。如果未向客户端发送错误消息,则具有请求分辨率的帧不可用。
如果还不清楚,请告诉我。
相关文章:
- 在没有太多条件句的情况下,我如何避免被零除
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 如果我想在没有更新编译器的情况下使用新功能,该怎么办?
- 为什么我可以在不重载 "=" 运算符的情况下将一个对象分配给另一个对象?
- EOF有更安全的替代方案吗?它在我的情况下不起作用
- 我可以在没有堆栈的情况下在二叉搜索树中实现迭代器吗?
- 我应该如何在没有变量的情况下将相同的参数传递给 CMAKE 中的多个目标?
- C++数组与向量排序(在我的情况下,向量比数组慢~2.5倍(无优化))
- 我可以在没有Xcode的情况下在Mac上使用带有C++的虚幻引擎吗?
- 我可以在不使用Qt for Webassembly的情况下使用Emscripten编译Qt吗?
- 为什么我不能在不进行任何转换的情况下将浮点数放入任何类型的 ptr 中?
- 在我的情况下,多重继承是一种好的设计模式吗?
- QT QTest::键单击或鼠标移动似乎不适用于 QMenu 在我的情况下
- 运算符重载如何工作,为什么在我的情况下不起作用?
- 在我的情况下,我需要销毁辛格尔顿实例吗?
- 在我的情况下更好的是:矢量或列表
- 在我的情况下需要互斥
- 在我的情况下,使用 JNI 调用 CallVoidMethod 时抛出 NPE 的可能原因是什么
- 如何使用线程使用c++在我的情况下
- 在我的情况下,我如何重载相等的方法以使不同的对象在unordered_multimap具有相同的哈希码值