久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 網絡服務器的項目總結 [打印本頁]

作者: liuyy    時間: 2015-1-11 23:41
標題: 網絡服務器的項目總結
萬惡的網絡服務器的項目做完了,昨晚調試好程序之后,感覺自己又老了一大截,就像阿科一直說的那樣,IT男傷不起啊。
本次項目是網絡終端管理系統,程序代碼不多,就是網絡協議,線程等把人都快搞瘋了。項目很簡單,做一個網絡服務器,有服務端和客戶端,客戶端連接上服務器之后,能夠注冊登錄,多客戶端連接,有心跳機制,有配置文件,客戶端發送shell命令能夠在客戶端顯示,客戶端有聊天功能,類似QQ,所有日志文件和聊天信息均保存。
這次項目沒有規劃好時間,起初很快就把基本的框架和注冊登錄寫好了,后來幾天沒有做多少東西,一直以為時間還多,等到最后真的是不夠了哇。昨天還和理武兄去上海植物園逛了一圈;貋砝^續寫代碼,一直到凌晨兩點。
第一個問題是shell 命令,起初shell命令寫好了,重定向到客戶端屏幕顯示正常,輸入ls的時候可以用,但是pstree –p的時候就不行了,經檢查后當發現邏輯有一定問題,緩存空間太小,必須循環讀取數據。后來雖然是能夠循環讀寫了,但是忘記加結束符’\0’,命令顯示也不正常。
第二個問題是心跳機制,所謂心跳機制就是客戶端連接服務器之后,隔一段時間向服務器發送一個信號,表示該用戶在線,當用戶意外退出或者無操作時,服務器端的心跳處理函數開始處理,定時器時間到了就會把客戶端用戶置為不在線狀態。我想了一個很簡單的辦法,在用戶鏈表里面設了一個heart,注冊時置-1,正常退出置-1,在客戶端用alarm函數,循環向服務器發信號,如果服務器收到信號,就將heart置為10,服務器心跳處理函數就是當heart10時,用戶在線正常,當heart>0時,heart1,heart=0時用戶離線成功。服務器也是用alarm函數循環處理心跳。
第三個問題是線程,起初客戶端只開了兩個線程,其中一個線程只處理聊天信息,但是在退出聊天的時候,無法正常退出。當時我在想,主線程和子線程應該是同時讀取服務器發來的信號,后來經過我很多次的實驗,發現在子線程發給服務器的信號,只有子線程能接收到,這樣我就想了一個辦法,先結束子線程,再用pthread_join回收子線程資源,然后在主線程發送一個信號給服務器,這樣主線程就能讀取到服務器的信號了。后來我用了三個線程,兩級菜單兩個線程,處理聊天信息一個線程,其中一個我用了return結束子線程,還有一個用了pthread_exit結束子線程,都成功了。不知道我的想法對不對。
pthread_join的作用:使一個線程等待另一個線程結束。代碼中如果沒有pthread_join主線程會很快結束從而使整個進程結束,從而使創建的線程沒有機會開始執行就結束了。加入pthread_join后,主線程會一直等待直到等待的線程結束自己才結束,使創建的線程有機會執行。
第四個問題是保存和讀取文件的問題。以前做項目都是保存二進制文件,這次保存日志文件和讀取配置文件。經百度之后知道了操作文本文件的辦法。保存代碼:
printffd,”%s”,buf);
printffd,”%d”,i);
fprintf用法和printf用法一樣,多了一個文件描述符。
讀取代碼如下:
FILE *fp;
fp = fopen(“./ip”,”r”);
while(!feof(fp))
       ipbuf[i++]=getc(fp);
       ipbuf[i-2]= ‘\0’;
fopen第一個參數是文件路徑。ipbuf里面存放的就是ip文件的數據。
第五個問題是獲取系統時間,保存日志文件時,保存項目有ip、用戶、操作、操作時間。操作時間就是系統時間咯,代碼如下:
#include<time.h>
#include<stdio.h>
char *buf = NULL;
time_t now;
struct tm *timenow;
time(&now);
timenow=localtime(&now);
printf("time : %s\n",asctime(timenow));
buf = asctime(timenow);
printf("buf:%s\n",buf);
第六點就是字節序對齊問題。到現在還不是很理解,需要在再深入理解一下。
軟件運行暫時能夠實現項目的要求。這次沒做好的很重要的一點就是,沒有時間寫代碼注釋了,代碼存放得相當亂,因為修改了很多次,宏定義和函數名、變量名等取名很垃圾。網絡數據包傳送的無用東西太多,為了圖方便,所有信息全部存在了數據包里面,占用了大量的網絡資源。還有一個重要的問題是線程沒有做同步浪費了內核資源。






歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲综合天堂 | 日韩精品久久久久久 | 日韩视频在线观看 | 黄色大毛片 | 我要操网站 | 一区二区三区免费在线观看 | 一本伊人 | 国产精品一区一区三区 | 欧美精品99久久久 | 国产免费无遮挡 | 欧美精品网 | 精品色 | 999久久久 | av一道本| 五月激情网站 | 久久精品国产亚洲 | 久久综合在线 | 国产视频一二三区 | av在线免费播放 | 午夜免费福利视频 | av日韩在线播放 | 欧美国产一区二区 | 国产91清纯白嫩初高中在线观看 | 欧美在线观看一区二区 | 色av导航| 天天爱天天色 | 精品国产欧美一区二区三区成人 | 欧美午夜精品久久久久免费视 | av网站在线看 | 国产精品福利在线 | 黄色免费视频 | 久久综合五月天 | 91porn在线| 一级黄色免费视频 | 人人插人人射 | 天堂av资源| 日韩免费一级片 | 亚洲免费一区二区 | 亚洲第一综合 | 国产网友自拍 | 国产成人免费在线 |