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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2412|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

網(wǎng)絡(luò)服務(wù)器的項(xiàng)目總結(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:72008 發(fā)表于 2015-1-11 23:41 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
萬(wàn)惡的網(wǎng)絡(luò)服務(wù)器的項(xiàng)目做完了,昨晚調(diào)試好程序之后,感覺(jué)自己又老了一大截,就像阿科一直說(shuō)的那樣,IT男傷不起啊。
本次項(xiàng)目是網(wǎng)絡(luò)終端管理系統(tǒng),程序代碼不多,就是網(wǎng)絡(luò)協(xié)議,線(xiàn)程等把人都快搞瘋了。項(xiàng)目很簡(jiǎn)單,做一個(gè)網(wǎng)絡(luò)服務(wù)器,有服務(wù)端和客戶(hù)端,客戶(hù)端連接上服務(wù)器之后,能夠注冊(cè)登錄,多客戶(hù)端連接,有心跳機(jī)制,有配置文件,客戶(hù)端發(fā)送shell命令能夠在客戶(hù)端顯示,客戶(hù)端有聊天功能,類(lèi)似QQ,所有日志文件和聊天信息均保存。
這次項(xiàng)目沒(méi)有規(guī)劃好時(shí)間,起初很快就把基本的框架和注冊(cè)登錄寫(xiě)好了,后來(lái)幾天沒(méi)有做多少東西,一直以為時(shí)間還多,等到最后真的是不夠了哇。昨天還和理武兄去上海植物園逛了一圈。回來(lái)繼續(xù)寫(xiě)代碼,一直到凌晨?jī)牲c(diǎn)。
第一個(gè)問(wèn)題是shell 命令,起初shell命令寫(xiě)好了,重定向到客戶(hù)端屏幕顯示正常,輸入ls的時(shí)候可以用,但是pstree –p的時(shí)候就不行了,經(jīng)檢查后當(dāng)發(fā)現(xiàn)邏輯有一定問(wèn)題,緩存空間太小,必須循環(huán)讀取數(shù)據(jù)。后來(lái)雖然是能夠循環(huán)讀寫(xiě)了,但是忘記加結(jié)束符’\0’,命令顯示也不正常。
第二個(gè)問(wèn)題是心跳機(jī)制,所謂心跳機(jī)制就是客戶(hù)端連接服務(wù)器之后,隔一段時(shí)間向服務(wù)器發(fā)送一個(gè)信號(hào),表示該用戶(hù)在線(xiàn),當(dāng)用戶(hù)意外退出或者無(wú)操作時(shí),服務(wù)器端的心跳處理函數(shù)開(kāi)始處理,定時(shí)器時(shí)間到了就會(huì)把客戶(hù)端用戶(hù)置為不在線(xiàn)狀態(tài)。我想了一個(gè)很簡(jiǎn)單的辦法,在用戶(hù)鏈表里面設(shè)了一個(gè)heart,注冊(cè)時(shí)置-1,正常退出置-1,在客戶(hù)端用alarm函數(shù),循環(huán)向服務(wù)器發(fā)信號(hào),如果服務(wù)器收到信號(hào),就將heart置為10,服務(wù)器心跳處理函數(shù)就是當(dāng)heart10時(shí),用戶(hù)在線(xiàn)正常,當(dāng)heart>0時(shí),heart1heart=0時(shí)用戶(hù)離線(xiàn)成功。服務(wù)器也是用alarm函數(shù)循環(huán)處理心跳。
第三個(gè)問(wèn)題是線(xiàn)程,起初客戶(hù)端只開(kāi)了兩個(gè)線(xiàn)程,其中一個(gè)線(xiàn)程只處理聊天信息,但是在退出聊天的時(shí)候,無(wú)法正常退出。當(dāng)時(shí)我在想,主線(xiàn)程和子線(xiàn)程應(yīng)該是同時(shí)讀取服務(wù)器發(fā)來(lái)的信號(hào),后來(lái)經(jīng)過(guò)我很多次的實(shí)驗(yàn),發(fā)現(xiàn)在子線(xiàn)程發(fā)給服務(wù)器的信號(hào),只有子線(xiàn)程能接收到,這樣我就想了一個(gè)辦法,先結(jié)束子線(xiàn)程,再用pthread_join回收子線(xiàn)程資源,然后在主線(xiàn)程發(fā)送一個(gè)信號(hào)給服務(wù)器,這樣主線(xiàn)程就能讀取到服務(wù)器的信號(hào)了。后來(lái)我用了三個(gè)線(xiàn)程,兩級(jí)菜單兩個(gè)線(xiàn)程,處理聊天信息一個(gè)線(xiàn)程,其中一個(gè)我用了return結(jié)束子線(xiàn)程,還有一個(gè)用了pthread_exit結(jié)束子線(xiàn)程,都成功了。不知道我的想法對(duì)不對(duì)。
pthread_join的作用:使一個(gè)線(xiàn)程等待另一個(gè)線(xiàn)程結(jié)束。代碼中如果沒(méi)有pthread_join主線(xiàn)程會(huì)很快結(jié)束從而使整個(gè)進(jìn)程結(jié)束,從而使創(chuàng)建的線(xiàn)程沒(méi)有機(jī)會(huì)開(kāi)始執(zhí)行就結(jié)束了。加入pthread_join后,主線(xiàn)程會(huì)一直等待直到等待的線(xiàn)程結(jié)束自己才結(jié)束,使創(chuàng)建的線(xiàn)程有機(jī)會(huì)執(zhí)行。
第四個(gè)問(wèn)題是保存和讀取文件的問(wèn)題。以前做項(xiàng)目都是保存二進(jìn)制文件,這次保存日志文件和讀取配置文件。經(jīng)百度之后知道了操作文本文件的辦法。保存代碼:
printffd,”%s”,buf);
printffd,”%d”,i);
fprintf用法和printf用法一樣,多了一個(gè)文件描述符。
讀取代碼如下:
FILE *fp;
fp = fopen(“./ip”,”r”);
while(!feof(fp))
       ipbuf[i++]=getc(fp);
       ipbuf[i-2]= ‘\0’;
fopen第一個(gè)參數(shù)是文件路徑。ipbuf里面存放的就是ip文件的數(shù)據(jù)。
第五個(gè)問(wèn)題是獲取系統(tǒng)時(shí)間,保存日志文件時(shí),保存項(xiàng)目有ip、用戶(hù)、操作、操作時(shí)間。操作時(shí)間就是系統(tǒng)時(shí)間咯,代碼如下:
#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);
第六點(diǎn)就是字節(jié)序?qū)R問(wèn)題。到現(xiàn)在還不是很理解,需要在再深入理解一下。
軟件運(yùn)行暫時(shí)能夠?qū)崿F(xiàn)項(xiàng)目的要求。這次沒(méi)做好的很重要的一點(diǎn)就是,沒(méi)有時(shí)間寫(xiě)代碼注釋了,代碼存放得相當(dāng)亂,因?yàn)樾薷牧撕芏啻危甓x和函數(shù)名、變量名等取名很垃圾。網(wǎng)絡(luò)數(shù)據(jù)包傳送的無(wú)用東西太多,為了圖方便,所有信息全部存在了數(shù)據(jù)包里面,占用了大量的網(wǎng)絡(luò)資源。還有一個(gè)重要的問(wèn)題是線(xiàn)程沒(méi)有做同步浪費(fèi)了內(nèi)核資源。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99视频免费 | 欧美日韩亚洲一区 | 99re免费 | 91精品国产综合久久精品 | 精品在线一区 | 成年免费在线观看 | 国产精品毛片av | 91视频18 | 精品乱码一区二区三四区视频 | 免费观看一级毛片 | 三级在线免费 | 亚洲一区亚洲二区 | 一区二区国产在线 | 亚洲午夜av久久乱码 | 91精品国产91久久综合桃花 | 国产成人免费视频网站视频社区 | 国产精品久久久久久婷婷天堂 | 一级免费看 | 天天综合日日夜夜 | 超碰地址 | 欧美一区二区在线免费观看 | 国产97在线 | 日韩 | 国产精品揄拍一区二区 | 国产精品777一区二区 | 国产精品一区一区 | 国产精品免费一区二区三区四区 | 久久精品色欧美aⅴ一区二区 | 日韩欧美不卡 | 精品美女| 久久国产精品72免费观看 | 天天弄天天操 | 国产精品色婷婷久久58 | 狠狠骚 | 成人h动漫精品一区二区器材 | 日韩欧美三区 | 成人在线视频免费观看 | 成人三级网址 | aaa一区 | 久久99精品国产 | 久久99深爱久久99精品 | 日韩精品一区二区三区第95 |