linux聊天室程序如何實現

代碼:

#ifndef?_i_h ? #define?_i_h ? #include?<math.h> #include?<stdio.h> #include?<sys> #include?<arpa> #include?<netinet> #include?<unistd.h> #include?<sys> #include?<sys> #include?<fcntl.h> #include?<stdlib.h> #include?<errno.h> #include?<string.h> #include?<inttypes.h> #include?<time.h> #include?<sys>? #include?<net> #include?<signal.h> #include?<ncurses.h> #include?<math.h> ? #define?sevr_ip???"127.0.0.1" #define?sevr_port??8081 #define?cntnt_len??150 #define?msg_len???sizeof(struct?msg) #define?addr_len??sizeof(struct?sockaddr) #define?usr_len???sizeof(struct?user) #define?prt_len???8 #define?hstr_len??sizeof(struct?chat_history) ? /*?declare?global?variables?*/ int?mainfd;/*?used?as?chat?histroy?file?handle*/ int?sockfd;/*?used?as?socket?local?handle?*/ int?count; struct?sockaddr_in?server; ? /*?msg?is?used?for?communicating?message?*/ struct?msg { ??int?flag;?/*?flag?meaning:1,ordinary;?2,log?msg;?3,reg?msg,?other,file*/ ??int?id_from; ??int?id_to; ??char?content[cntnt_len]; ??char?append[10];? }; ? /*?user?is?used?information?list?*/ struct?user { ??int?id; ??char?name[10]; ??char?password[10]; ??char?*p_chatlog; ??struct?sockaddr?user_addr;? }; /*?chat_history?used?for?reading?chat?history?*/ struct?chat_history { ??char?content[cntnt_len]; ??char?time[25]; ??int?to; ??int?from; ??int?count; }; ? /*?i_functions?below?is?funtions?needed?by?both?client?and?sever?*/ extern?int?i_saveto_chat(struct?msg?*pmsg); ? int?i_clean_stdin?() { ??while?('n'?==?getchar()) ??{ ????continue; ??} ? ??return(0); } ? int?i_print(char?*pmsg,?int?size) { ??int?i?=?1; ? ??for?(i;?iid_from; ??hstr.to?=?pmsg-&gt;id_to; ??strncpy(hstr.content,?pmsg-&gt;content,?cntnt_len); ??strncpy(hstr.time,?i_get_time(),?25); ? ??i_lseek(mainfd,?0,?seek_end); ? ??i_write(mainfd,?&amp;hstr,?hstr_len); ? ??return(0); } ? int?i_print_history(int?len,?int?i) { ??struct?chat_history?chat_reader; ??int?j; ??int?position; ??? ??bzero(&amp;chat_reader,?hstr_len); ??if?(i?!=?0) ??{ ????position?=?len*i*hstr_len; ????i_lseek(mainfd,?position,?seek_end); ??} ??else ??{ ????position?=?len*i*hstr_len; ? ????i_lseek(mainfd,?hstr_len,?seek_set); ??} ????? ??for?(j?=?1;?j?<p><strong>代碼二:</strong></p> <pre class="brush:bash;">#include?"i.h" ? int?user_list_fd; ? /*?start:initialization?*/ int?init() { ??i_init(); ? ??user_list_fd?=?i_open("./user_list",?o_rdwr|o_creat); ? ??struct?user?usr; ??/*?init?the?user?list?file's?fist?user?to?0*/ ??memset((struct?user*)&amp;usr,?'

人人狠狠综合88综合久久|
久久99热这里只频精品6|
97精品伊人久久久大香线蕉|
99久久久国产精品免费无卡顿
|
久久精品国产91久久麻豆自制|
国产一区二区精品久久岳|
无码日韩人妻精品久久蜜桃|
久久亚洲2019中文字幕|
四虎国产精品免费久久5151|
亚洲国产精品18久久久久久|
国产精品久久久久aaaa|
久久久久亚洲av无码专区喷水
|
亚洲一区二区三区日本久久九|
久久久无码精品亚洲日韩蜜臀浪潮|
久久久久国色AV免费观看|
国产成人精品久久亚洲高清不卡 
国产成人精品久久亚洲高清不卡
国产成人精品久久亚洲
|
久久精品一区二区三区中文字幕
|
国内精品久久久久久麻豆|
一本色道久久综合亚洲精品|
久久99精品久久久久久野外|
久久久久亚洲av无码专区喷水|
亚洲天堂久久久|
亚洲精品美女久久久久99小说|
久久99精品久久久久久噜噜|
久久精品aⅴ无码中文字字幕重口|
欧美一级久久久久久久大|
久久综合狠狠色综合伊人|
久久久精品人妻一区二区三区蜜桃|
91秦先生久久久久久久|
97久久天天综合色天天综合色hd|
伊人久久大香线蕉av不卡|
久久久久久久精品成人热色戒|
国产精品免费久久久久电影网|
久久久久久a亚洲欧洲aⅴ|
99国产精品久久|
久久电影网2021|
久久最近最新中文字幕大全|
亚洲一区中文字幕久久|
久久se精品一区精品二区国产|
国产99久久久国产精品~~牛|
久久精品中文字幕久久|