亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? server.c

?? 在linux下利用消息隊列實現簡單的聊天程序
?? C
字號:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <signal.h>#include <time.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#define KEYPATH "/root/chat"#define NAMESIZE 16#define MSGSIZE 128#define LEN sizeof(int)+sizeof(int)+NAMESIZE+MSGSIZE#define SERTYPE 1 #define NORMAL 0#define REGISTER 1#define UNREGISTER -1typedef struct node{    int id;    struct node  *next;}USR;struct msgbuf{    long mtype;    int subtype;    int id;    char nickname[NAMESIZE];    char mtext[MSGSIZE];}buf_in, buf_out;int msgid;USR *head;USR * myregister(USR *head, int id){   USR *p = (USR *)malloc(sizeof(USR));   p->id = id;   p->next = head->next;   head->next = p;   return head;} int unregister(USR *head, int id){   USR *p, *q;   p = head;   q = p->next;    while( (q->id != id) && (q->next != NULL) )   {      p = q;      q = q->next;   }   if ( q->id == id)    {       p->next = q->next;       free(q);       return 1;   }     return 0;}int broadcast(int msgid, USR *head, int mode){   USR *p;   p = head->next;   buf_out.subtype = mode;   while( p != NULL)   {       buf_out.mtype = p->id;      if ( msgsnd(msgid, &buf_out, LEN, 0) != 0 )      {         perror("server send message error");         exit(-1);      }      p = p->next;   }      return 1;}/*void signal_handler(){   read(pfd[0], buf_out.mtext, 20);    strcpy(buf_out.nickname, "from server...");   broadcast(msgid, head, NORMAL);}  */int main(){   int pid;   key_t key;   char command[20];   //signal(SIGUSR1, signal_handler);    if ( (key=ftok(KEYPATH, 'c')) == -1 )   {      printf("faile to locate %s\n", KEYPATH);      exit(-1);   }   msgid = msgget(key, IPC_CREAT|IPC_EXCL|0666);   if ( msgid == -1 )   {      perror("msgget");      exit(-1);   }/*   if ( pipe(pfd) < 0 )   {      msgctl(msgid, IPC_RMID, NULL);      perror("pipe...");      exit(-1);   }*/      if ( (pid = fork()) == -1 )   {      msgctl(msgid, IPC_RMID, NULL);      perror("fork");      exit(-1);   }   if ( pid == 0 )   {      while ( 1 )      {           printf("\n(server console):");          if ( fgets(command, 20, stdin) != NULL )         {             if ( strncmp(command, "quit", 4) == 0 )             {                 printf("The server is down...\n");                 kill(getppid(), SIGKILL);                 sleep(1);                 msgctl(msgid, IPC_RMID, NULL);                 exit(0);             }             else             {                 buf_out.mtype = SERTYPE;                 buf_out.subtype = NORMAL;                 strcpy(buf_out.nickname, "from server...");                 strcpy(buf_out.mtext, command);                 if ( msgsnd(msgid, &buf_out, LEN, 0) < 0 )                 {                    perror("msgsnd");                 }                 //write(pfd[1], command, 10);                 //kill(getppid(), SIGUSR1);             }         }      }   }   else   {      head = (USR *)malloc(sizeof(USR));      head->next = NULL;      while(1)      {         if ( msgrcv(msgid, &buf_in, LEN, 1, 0) == -1 )         {            perror("msgrcv");            exit(-1);         }         else         {               buf_out = buf_in;             switch(buf_in.subtype)             {                case UNREGISTER:                         unregister(head, buf_in.id);                         strcpy(buf_out.mtext, "has left...");                         broadcast(msgid, head, UNREGISTER);                                              break;                case  REGISTER:                         head = myregister(head, buf_in.id);                         strcpy(buf_out.mtext, "has joined in...");                         broadcast(msgid, head, REGISTER);                          break;                case  NORMAL:                          broadcast(msgid, head, NORMAL);                         break;             }          }    // end of if       }   } }            

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频观看视频| 国产美女久久久久| 成人欧美一区二区三区| 久久蜜臀精品av| 在线播放欧美女士性生活| 色婷婷久久久综合中文字幕| 色综合久久中文字幕综合网 | 蜜桃视频一区二区三区在线观看| 亚洲一区二区在线免费观看视频| 亚洲欧美日韩在线不卡| 亚洲激情综合网| 亚州成人在线电影| 国产一区二区调教| 不卡的av在线播放| 日本丰满少妇一区二区三区| 欧美视频在线一区二区三区| 制服丝袜亚洲色图| 国产日韩欧美麻豆| 亚洲精品美腿丝袜| 五月天激情综合| 国产精品综合视频| 一本到高清视频免费精品| 欧美男生操女生| 国产亚洲欧美中文| 亚洲欧美另类在线| 美女精品一区二区| 99精品国产视频| 91精品国模一区二区三区| 国产亚洲精品aa午夜观看| 樱花影视一区二区| 精品亚洲免费视频| 91猫先生在线| 国产日韩在线不卡| 丝袜a∨在线一区二区三区不卡| 国产综合久久久久久鬼色 | 欧美一级夜夜爽| 国产精品无码永久免费888| 亚洲成av人在线观看| 粉嫩aⅴ一区二区三区四区五区| 欧美午夜寂寞影院| 欧美激情一区二区三区在线| 日韩高清国产一区在线| 成人午夜视频免费看| 欧美一级二级在线观看| 亚洲精品欧美在线| 国产成人在线看| 日韩一卡二卡三卡| 亚洲午夜在线视频| 91看片淫黄大片一级| 久久久欧美精品sm网站| 日本亚洲三级在线| 在线观看免费亚洲| 国产精品久久久久久久久免费桃花 | 欧美一区二区视频观看视频| 中文字幕一区二区三区av| 精品一区二区三区影院在线午夜| 色婷婷综合久久久中文一区二区| 久久久国产精品午夜一区ai换脸| 欧美日韩aaaaaa| 亚洲国产你懂的| 国产99久久久久| 精品国产sm最大网站| 午夜精品免费在线观看| 99国产精品久久久久久久久久久| www久久精品| 久久se精品一区精品二区| 欧美在线三级电影| 亚洲精品成人a在线观看| 成人精品高清在线| 欧美激情在线观看视频免费| 日韩中文字幕不卡| 欧美日韩中文另类| 亚洲电影一级片| 亚洲国产裸拍裸体视频在线观看乱了| 蜜桃精品视频在线| 欧美美女一区二区| 亚洲风情在线资源站| 日韩西西人体444www| 亚洲国产视频a| 欧美性淫爽ww久久久久无| 一区二区三区不卡视频| 91污片在线观看| 亚洲老妇xxxxxx| 精品视频一区三区九区| 午夜电影一区二区三区| 欧美日韩免费观看一区三区| 天天影视网天天综合色在线播放| 欧美日韩和欧美的一区二区| 日韩成人午夜精品| 日韩一级视频免费观看在线| 久久9热精品视频| 欧美videos大乳护士334| 激情综合网最新| 欧美激情中文字幕一区二区| 91丨九色丨蝌蚪丨老版| 日韩制服丝袜av| 99天天综合性| 一区二区不卡在线视频 午夜欧美不卡在| 不卡的av网站| 亚洲韩国精品一区| 日韩视频在线一区二区| 国产精品一区二区在线播放| 国产精品二三区| 欧美日韩精品福利| 国产伦精品一区二区三区免费迷 | 成人一级片在线观看| 中文字幕亚洲一区二区av在线 | 久久99国产精品麻豆| 欧美激情在线观看视频免费| 精品福利一二区| 国产一区二区在线电影| 亚洲九九爱视频| 久久影音资源网| 欧美中文字幕一区二区三区亚洲| 久久99精品国产.久久久久久| 国产精品灌醉下药二区| 欧美日韩精品免费观看视频| 国产精品一区二区免费不卡| 午夜免费欧美电影| 国产精品每日更新在线播放网址| 在线不卡的av| av在线播放一区二区三区| 美女视频第一区二区三区免费观看网站| 中文字幕五月欧美| 精品国产乱码久久久久久图片| 欧洲精品中文字幕| 丁香婷婷综合激情五月色| 免费成人在线网站| 一区二区三区四区在线免费观看| 精品国产乱码久久久久久蜜臀| 一本久道久久综合中文字幕| 成人免费不卡视频| 国产麻豆视频一区| 免费一级片91| 性做久久久久久免费观看欧美| 国产精品国产三级国产普通话三级 | 国模套图日韩精品一区二区| 亚洲高清免费观看| 一区二区三区国产| 亚洲图片激情小说| 国产精品素人一区二区| 国产夜色精品一区二区av| 日韩欧美卡一卡二| 欧美久久久久久久久中文字幕| 色诱亚洲精品久久久久久| 99精品久久只有精品| 成人夜色视频网站在线观看| 国产一区二区三区电影在线观看| 另类欧美日韩国产在线| 蜜桃av一区二区| 蜜臀av在线播放一区二区三区| 天天色天天操综合| 日日夜夜精品视频天天综合网| 日日夜夜精品视频免费| 蜜臀av一区二区三区| 麻豆精品新av中文字幕| 国内外成人在线| 高清不卡在线观看av| fc2成人免费人成在线观看播放| 不卡视频免费播放| 日本大香伊一区二区三区| 欧洲色大大久久| 日韩一区二区视频| www激情久久| 成人免费在线播放视频| 亚洲午夜在线电影| 视频在线观看91| 国内精品在线播放| 从欧美一区二区三区| 色av成人天堂桃色av| 欧美日韩你懂的| 久久久久久久久伊人| 亚洲品质自拍视频网站| 五月天激情小说综合| 国产在线精品一区二区不卡了| 国产成人午夜精品影院观看视频| 91网站在线观看视频| 欧美日韩精品免费| 国产亚洲欧美激情| 亚洲一区成人在线| 国产成人综合视频| 欧美中文字幕久久| 337p日本欧洲亚洲大胆色噜噜| 亚洲同性gay激情无套| 日韩福利电影在线| www.亚洲激情.com| 欧美一区二区播放| 亚洲乱码国产乱码精品精98午夜 | www.日韩av| 欧美男男青年gay1069videost| 久久精品一二三| 图片区小说区国产精品视频| 国产精品一二三在| 欧美日韩午夜在线视频| 国产日韩欧美亚洲| 美女mm1313爽爽久久久蜜臀| 一本色道久久综合亚洲aⅴ蜜桃| 欧美大片国产精品| 一区二区三区电影在线播| 高清不卡一二三区|