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

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

?? sevprog.c

?? 用C語言編的郵件系統(畢業論文)
?? C
字號:
#include<stdio.h>#include<stdlib.h>#include<errno.h>#include<string.h>#include<sys/types.h>#include<netinet/in.h>#include<sys/socket.h>#include<sys/wait.h>#include "mail.h"#include "usrpass.h"#define MAXSIZE 500#define MYPORT 5500 #define BACKLOG 10define OK 1typedef struct{           int  mail_num;           char to[MAXSIZE];           char from[MAXSIZE];           char subject[MAXSIZE];           char content[MAXSIZE];           time_t recvtime;}MailStruct;int ServerMain(int);char GetSockChar(int); int SendSockChar(int,char);int readline(int,void*,int);int sockendline(int );void CutEndl(char* str);int RegisterSev(int );int RecvUsrPswd(int,char* ,char* );int  LoginSev(int );int MailService(int,char*);int SendMailList(int,char*);int ReadMailSev(int sockfd);int DelMailSev(int sockfd,char*Usr);int SendMailSev(int sockfd,char*Usr);int main(){      int sockfd,new_fd;    struct sockaddr_in their_addr;    int sin_size;     sockfd=StartListening();       while(1)    {        sin_size=sizeof(struct sockaddr_in);        new_fd=accept(sockfd,(struct sockaddr*)&their_addr,&sin_size);        if (new_fd==-1) {                   perror("accept");                    continue;         }        printf("server:got connection from %s",inet_ntoa(their_addr.sin_addr));        if (!fork())  {                                           ServerMain(new_fd);                 close(new_fd);        }            close(new_fd);     }    while(waitpid(-1,NULL,WNOHANG)>0);}int             /* read a text line from a descriptor */readline (int fd,void *vptr,int maxlen){    int n,rc;    char c,*ptr;        ptr = vptr;    for (n=1;n<maxlen;n++) {      again:        if ( (rc =read(fd,&c,1)) ==1) {            *ptr++=c;            if (c=='\n')                break;         /* newline is stored,like fgets() */        }else if (rc ==0) {            if (n==1)                return (0);   /* EOF,no data read */            else               break;       }else{            if (errno == EINTR)                goto again;            return(-1);     /* error,errno set by read() */       }    }    *ptr=0;                /* null terminate like fgets() */    return(n);}int sockendline(int sockfd)   /*ok*/{    const char ch='\n';    if (write(sockfd,&ch,1)==1)         return 0;    else -1;}void  CutEndl(char* str){    int len;    len=strlen(str);    if (str[len-1]=='\n')                 str[len-1]='\0';}int StartListening()     /*ok*/{   int sockfd;   struct sockaddr_in my_addr;   int sin_size;    if ((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){        perror("socket");        exit(1);    }       my_addr.sin_family=AF_INET;    my_addr.sin_port=htons(MYPORT);    my_addr.sin_addr.s_addr=INADDR_ANY;    bzero(&(my_addr.sin_zero),8);    if (bind(sockfd,(struct sockaddr*) &my_addr,sizeof(struct sockaddr))==-1)    {                 perror("bindB");          exit(1);    }     if  (listen(sockfd,BACKLOG)==-1)     {             perror("listen");             exit(1);    }    else printf("start listening the clients' connect request......\n");    printf("\nserver state:waiting for a user's sevice request \n");    return sockfd;}int ServerMain(int sockfd)     /*ok*/{    char Comch,Inforch;    char recvbuf[MAXSIZE],sendbuf[MAXSIZE];    char Username[MAXSIZE],Password[MAXSIZE];    printf("\n\nserver state:waiting for client's command\n");    Comch=GetSockChar(sockfd);    printf("\nreceived command character:  %c\n",Comch);    switch (Comch) {              case 'R':RegisterSev(sockfd);                                 break;              case 'L': LoginSev(sockfd);                                 break;      }      return OK;}char GetSockChar(int sockfd)   /*get a command char  or a signal char from socket*/{    char ch;    do {        read(sockfd,&ch,1);     }while (!isalnum(ch));    return ch;} int  SendSockChar(int sockfd,char ch)     /*ok*//*send a signal char to client through socket*/{    return write(sockfd,&ch,1);}int RegisterSev(int sockfd)   /*ok*/{            char Usr[MAXSIZE],Pswd[MAXSIZE];        char ch;      RecvUsrPswd(sockfd,Usr,Pswd);             printf("received username:%s\n",Usr);      printf("received password:%s\n",Pswd);      UsrStore(Usr,Pswd);      /* to be written by TZJ*/       SendSockChar(sockfd,'D');     }int  LoginSev(int sockfd){        int ret;        const char infch[2]={'F','T'};        char Usr[MAXSIZE],Pswd[MAXSIZE];        do {                 RecvUsrPswd(sockfd,Usr,Pswd);                                           printf("usrname=%s\n",Usr);               printf("password=%s\n",Pswd);                              ret=TestPasd(Usr,Pswd);      /* to be written by TZJ */               printf("return is %d \n",ret);                         if (ret==1)  {                                      SendSockChar(sockfd,infch[1]);                             MailSevice(sockfd,Usr);               }                                else SendSockChar(sockfd,infch[0]);        }while (ret!=OK);        return OK;}int RecvUsrPswd(int sockfd,char *Usr,char* Pswd)   /*ok*/{      char ch;      ch=GetSockChar(sockfd);      if (ch='B') {          readline(sockfd,Usr,MAXSIZE);          CutEndl(Usr);          readline(sockfd,Pswd,MAXSIZE);          CutEndl(Pswd);      }}int MailSevice(int sockfd,char*Usr){   char ch;    printf("start mail sevice\n");            SendMailList(sockfd,Usr);      for (; ;) {             printf("\nserver:waiting for client's command\n");             ch=GetSockChar(sockfd);             printf("received command char:%c",ch);             switch(ch){                    case 'R':ReadMailSev(sockfd);                               break;                    case 'D':DelMailSev(sockfd,Usr);                               break;                    case 'S': SendMailSev(sockfd,Usr);                              break;                    case 'E': printf("sevice for one client completed\n");                                      return OK;                   default:  break;              }   }   return OK;}  int SendMailList(int sockfd,char*Usr){    FILE *stream;    char c,buf[MAXSIZE],*ptr;    getmsgfrmdb(Usr);    printf("after getmsgfrmdb() \n");        stream = fopen(TMPMSGFILE,"r");    ptr=buf;    while ((c=fgetc(stream))!=EOF)           *ptr++=c;    *ptr='\0';    fclose(stream);    putchar('\n');    puts(buf);    printf("start sending mail list for %s......",Usr);    write(sockfd,buf,strlen(buf));    printf("%d bytes been sent\n",strlen(buf));    SendSockChar(sockfd,'\0');       printf("sending maillist [OK!]");    return OK;}int ReadMailSev(int sockfd){    char ch, buf[MAXSIZE],MailNum[4],*ptr;    MailStruct  *TempMail;    int mail_id,i;     TempMail=(MailStruct*)malloc(sizeof(MailStruct));    ch=GetSockChar(sockfd);    readline(sockfd,MailNum,MAXSIZE);    CutEndl(MailNum);    mail_id=atoi(MailNum);    printf("Received Mail id: %d\n ",mail_id);    GetMail(mail_id,buf);   /*to be written by TZJ*/             SendSockChar(sockfd,'B');    write(sockfd,buf,strlen(buf));          SendSockChar(sockfd,'\0');    ch=GetSockChar(sockfd);    if (ch=='D')           return OK;    else return -1;}int DelMailSev(int sockfd,char*Usr){    char ch,MailNum[4];    int mail_id;    ch=GetSockChar(sockfd);    readline(sockfd,MailNum,MAXSIZE);    CutEndl(MailNum);    mail_id=atoi(MailNum);    DelMail(mail_id,Usr);   /*to be written by TZJ*/    SendSockChar(sockfd,'D');    ch=GetSockChar(sockfd);    if (ch=='D')       return OK;    else return -1;}    int SendMailSev(int sockfd,char* Usr){    MailStruct *TempMail;    struct message *MailToStore;    char ch,buf[MAXSIZE];    int i;    printf("\nSendMailSev\n");    TempMail=(MailStruct*)malloc(sizeof(MailStruct));    strcpy(TempMail->from,Usr);    strcpy(TempMail->content,Usr);    strcat(TempMail->content,"\n");    ch=GetSockChar(sockfd);    readline(sockfd,buf,MAXSIZE);    CutEndl(buf);    strcpy(TempMail->to,buf);     strcat(TempMail->content,buf);    strcat(TempMail->content,"\n");        readline(sockfd,buf,MAXSIZE);    CutEndl(buf);    strcpy(TempMail->subject,buf);    strcat(TempMail->content,buf);    strcat(TempMail->content,"\n");    read(sockfd,&ch,1);    i=0;    while(ch!=0) {         buf[i++]=ch;         read(sockfd,&ch,1);     }    buf[i]='\0';     strcat(TempMail->content,buf);    strcat(TempMail->content,"\n");       TempMail->recvtime=time((time_t*)NULL);      MailToStore=(struct message*)malloc(sizeof(struct message));    MailToStore->to=TempMail->to;    MailToStore->from=TempMail->from;    MailToStore->recvtime=TempMail->recvtime;    MailToStore->sendtime=TempMail->recvtime;    MailToStore->subject=TempMail->subject;    MailToStore->content=TempMail->content;    sprintf(buf,"%d",(int)MailToStore->recvtime);    MailToStore->messageid=buf;         printf("MailToStore-> content=\n%s\n",MailToStore->content);                         StoreMail(MailToStore);         /* to be written by TZJ */    SendSockChar(sockfd,'D');    ch=GetSockChar(sockfd);    if (ch=='D')            return OK;    else return -1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜av区久久| 色婷婷狠狠综合| 日本乱人伦aⅴ精品| 精品日韩av一区二区| 伊人开心综合网| 国产精品自在欧美一区| 欧美日韩高清影院| 亚洲欧美自拍偷拍| 国产一区二区影院| 欧美一区2区视频在线观看| 亚洲男人的天堂一区二区 | 日韩欧美123| 亚洲免费观看高清完整版在线| 99免费精品视频| 久久亚洲精精品中文字幕早川悠里 | 国产午夜精品一区二区三区嫩草| 亚洲国产精品麻豆| 色哟哟在线观看一区二区三区| 国产亚洲一区二区三区四区 | 69av一区二区三区| 一个色在线综合| 91香蕉视频在线| 国产精品美女久久久久av爽李琼| 毛片不卡一区二区| 91麻豆精品国产综合久久久久久| 亚洲精品国产精华液| kk眼镜猥琐国模调教系列一区二区| 2023国产一二三区日本精品2022| 秋霞电影网一区二区| 欧美日本不卡视频| 天天色综合天天| 欧美一区二区三区四区在线观看 | 色噜噜夜夜夜综合网| 日韩久久一区二区| 91亚洲大成网污www| 亚洲欧美电影一区二区| 一本久久a久久精品亚洲| 亚洲柠檬福利资源导航| 色先锋aa成人| 午夜精品视频一区| 日韩三级精品电影久久久| 免费看欧美美女黄的网站| 欧美r级在线观看| 国产精品一线二线三线精华| 国产三级一区二区| 色综合中文字幕| 亚洲国产毛片aaaaa无费看| 制服丝袜亚洲播放| 久久不见久久见免费视频1| 日本一区二区免费在线观看视频| 99精品视频一区二区三区| 一个色妞综合视频在线观看| 欧美一二三区在线观看| 久久99精品视频| 国产精品久久三| 欧美日韩一级二级| 国产一区二区精品在线观看| 中文字幕在线观看不卡视频| 91美女片黄在线| 丝袜美腿高跟呻吟高潮一区| 日韩欧美色综合网站| 成人免费高清视频在线观看| 亚洲一区二区三区视频在线| 欧美一二三区在线观看| 成人18视频日本| 奇米888四色在线精品| 国产日本亚洲高清| 91国偷自产一区二区三区观看| 日韩av在线免费观看不卡| 中文字幕欧美日韩一区| 欧美老女人第四色| 国产91丝袜在线观看| 午夜一区二区三区视频| 国产性色一区二区| 欧美精品在欧美一区二区少妇| 国产99久久久国产精品潘金| 亚洲图片欧美视频| 国产精品天美传媒沈樵| 欧美日韩性生活| 成+人+亚洲+综合天堂| 免费三级欧美电影| 一区二区三区四区在线免费观看| 精品免费视频一区二区| 在线观看欧美精品| 国产成人亚洲综合a∨猫咪| 亚洲 欧美综合在线网络| 国产精品日日摸夜夜摸av| 欧美一区二区视频在线观看2022| 97精品视频在线观看自产线路二| 九九国产精品视频| 天堂影院一区二区| 一区二区三区蜜桃网| 亚洲国产精华液网站w| 日韩精品一区二区三区四区 | 暴力调教一区二区三区| 久久激情五月婷婷| 日韩和欧美一区二区| 一卡二卡欧美日韩| 亚洲区小说区图片区qvod| 国产清纯美女被跳蛋高潮一区二区久久w | 91精品国产综合久久精品| 91福利国产精品| 91视频观看视频| 成人精品亚洲人成在线| 国产精品一区二区男女羞羞无遮挡| 日韩不卡一区二区| 日韩精品久久理论片| 性感美女极品91精品| 亚洲国产精品影院| 亚洲国产毛片aaaaa无费看 | 欧美在线|欧美| 在线一区二区视频| 91福利视频在线| 欧美这里有精品| 欧洲亚洲国产日韩| 欧美视频一区二区三区在线观看| 91年精品国产| 欧美自拍偷拍午夜视频| 欧美视频在线观看一区| 精品污污网站免费看| 欧美日韩国产高清一区二区三区 | 久久99精品久久久久久| 日韩精品成人一区二区三区| 日日摸夜夜添夜夜添国产精品| 亚洲第一在线综合网站| 五月激情综合色| 蜜臀av性久久久久蜜臀aⅴ流畅| 日本不卡一区二区三区| 九九**精品视频免费播放| 国产精品 欧美精品| 成人免费av网站| 一本到高清视频免费精品| 欧美亚洲高清一区| 91精品国产高清一区二区三区| 欧美成人伊人久久综合网| 久久精品日产第一区二区三区高清版 | 国产精品免费免费| 一区二区三区毛片| 日本不卡在线视频| 丁香婷婷综合激情五月色| 91色综合久久久久婷婷| 欧美日韩视频一区二区| 精品国产免费一区二区三区香蕉| 欧美国产一区二区| 亚洲一区二区av电影| 另类成人小视频在线| 丁香激情综合五月| 精品1区2区3区| 久久久久久免费毛片精品| 一区二区三区影院| 国产麻豆91精品| 色婷婷久久综合| 精品成人在线观看| 一区二区三区在线免费观看| 蜜桃av一区二区三区| k8久久久一区二区三区| 欧美久久久久久蜜桃| 中文字幕乱码日本亚洲一区二区| 亚洲综合男人的天堂| 国产剧情一区二区三区| 欧美男生操女生| 国产精品久久久久9999吃药| 人妖欧美一区二区| 在线看日本不卡| 欧美国产日韩精品免费观看| 天堂影院一区二区| 一本久久a久久精品亚洲| 久久亚洲一区二区三区明星换脸| 一区二区三区国产精华| 国产成+人+日韩+欧美+亚洲| 在线播放/欧美激情| 亚洲三级视频在线观看| 国产精品一区一区三区| 欧美一级二级在线观看| 一片黄亚洲嫩模| 97久久精品人人爽人人爽蜜臀| 亚洲精品一线二线三线无人区| 亚洲成a天堂v人片| 日本精品一区二区三区高清| 国产欧美中文在线| 国产在线精品一区二区三区不卡| 欧美顶级少妇做爰| 亚洲国产日韩精品| 色婷婷久久一区二区三区麻豆| 国产精品久久久久久户外露出 | 亚洲免费av在线| eeuss鲁片一区二区三区在线看| 欧美精品一区二区精品网| 日本视频中文字幕一区二区三区| 在线精品视频免费观看| 亚洲精品日韩一| 91一区二区三区在线观看| 国产精品免费aⅴ片在线观看| 国产九色精品成人porny| 日韩欧美色综合网站| 精品一区二区三区久久久| 日韩精品中午字幕| 经典三级一区二区| 国产人久久人人人人爽| 粉嫩绯色av一区二区在线观看 |