① 自己最近在用C++寫一個C/S的應用,想請教一下關於伺服器的問題
自己最近在用c加加寫一個應用,這個伺服器還是可以,沒有什麼多大的問題。
② c程序如何接受伺服器傳來的參數
你好。
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
就是這兩句話,你可以寫自己的參數分析類。
分析運行參數是在app的initinstance函數裡面的。
如果內我的回答沒能幫助您,請容繼續追問。
您也可以向我們團隊發出請求,會有更專業的人來為您解答。
③ 如何提高C/S模式伺服器網路處理性能
1 線程阻塞模式 程序邏輯直觀 為每一個連接開一個線程
2 普通選擇
3 非同步選擇 需要依靠Windows窗口版
4 事件通知權 與系統操作一致
5 重疊 高效 依靠文件系統
6 完成埠 高效 程序邏輯復雜
現在網路游戲伺服器,高效實用伺服器端多是用完成埠技術,完成埠也是公認最高效的I/O模式 樓主有時間可以深入研究下
④ C語言中,客戶端如何對多個伺服器操作的,詳解~!!
connect有個參數是struct sockaddr 所以可以用多個socket連接多個服務端。然後通過不同的版socket給不同的伺服器發送數據。還有你是不能直接權操作伺服器的。伺服器只是根據你發送過去的特定數據進行響應。
一樣的,弄個線程然後循環一直accept,判斷:當有客戶端鏈接的時候,就保存下來鏈接的這個客戶端的socket,然後開個線程對這個socket發送數據就可以了。因為是循環accept就會有很多客戶端鏈接過來。
⑤ 如何用c語言實現http伺服器
//服務端簡易代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<err.h>
#include<event.h>
#include<evhttp.h>
voidhttp_handle(structevhttp_request*req,void*arg);/*HTTPRequestHandle*/
intmain(){
structevhttp*httpd;
event_init();
httpd=evhttp_start("0.0.0.0",2345);
if(httpd==NULL){
fprintf(stderr,"Error:Unabletolistenon%s:%d ");
exit(1);
}
evhttp_set_timeout(httpd,2000);
evhttp_set_gencb(httpd,http_handle,NULL);
event_dispatch();
evhttp_free(httpd);
return0;
}
voidhttp_handle(structevhttp_request*req,void*arg){
structevbuffer*buf;
buf=evbuffer_new();
/*Responsetheclient*/
evhttp_send_reply(req,HTTP_OK,"OK",buf);
//evbuffer_add_printf(buf,"%s","HTTPSQS_AUTH_FAILED");
/*Releasethememory*/
evbuffer_free(buf);
fprintf(stderr,"Send ");
}
編譯:編譯時把libevent的類庫中的.so文件和.h文件連接進來。
⑥ C/S 系統的伺服器的功能是實現 ( ) 。
c/s在伺服器端抄可能只有襲資料庫,b/s在伺服器端除了資料庫還有一個網頁發布服務,比如iis、pache+iasp
、netbox等很多。現在伺服器這么發達,基本都可以通用了。沒什麼太大區別,性能要求高點而已!
⑦ C/S多個客戶端直接連接伺服器的資料庫如何進行並發操作呢
資料庫作為伺服器軟體,支持客戶端的並發操作是必須的功能啊,客戶端不用考慮哦。
資料庫引擎有一系列的辦法來支持多用戶的並發的,包括鎖、序列化、緩沖區等等。
⑧ 如何搭建C/S中的伺服器端
1、確定客戶端和服抄務襲端之間採用的序列化和反序列化的交換格式,可以採用的有XML JSON PROTOBUF等等
2、確定了交換格式以後開始編寫程序
3、服務端編程大部分都是處理RPC,難點就是在與客戶端連接和接收數據這一塊
http is base on ftp:
http app layer
--------
ftp translation layer.
如果我的回答沒幫助到您,請繼續追問。
⑨ C/C++做伺服器需要學習什麼樣的技術
伺服器所用到抄的知識:
TCP/UDP,最基本的
並發——你可以選擇使用select、poll,或者是多線程、多進程
如果你使用多線程,那麼就必須使用同步技術——信號量、互斥體、條件變數的一種或幾種,並且對於多線程技術,你還需要考慮使用進行線程分離與合並,
如果你使用了多進程,那麼同步技術就不是你需要考慮的了,你需要考慮的是進程相關的問題了,你是使用fork還是vfork,你該如何處理客戶端的請求,如何處理客戶端斷開連接後保證能夠處理完數據並且沒有僵屍進程產生,你還需要考慮高並發的問題
你發送接受數據的時候,採用何種方式,是阻塞的還是非阻塞的,還有連接超時、重傳等問題
你是選擇TCP還是UDP,如果選擇UDP你可得忙了,需要你自己去進行重傳驗證,模擬TCP的三次握手,保證數據不會丟失,保證數據的有序性
還有其他很多需要你考慮的,以上都是指在Linux下的C++,本人對windows C++不了解
推薦書目:UNIX高級環境編程,UNIX網路編程,卷一。C++只不過是你使用這些技術的方式,不管你使用C還是C++,你都可以使用從這兩本書中學習到很多有用的知識,但是不能保證你就可以寫出高質量的伺服器程序。