[英]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.