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

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

?? server.c

?? 實現圖片手工播放或者是自動播放的后臺文件
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include<fcntl.h>#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 "spcaframe.h"#define  PORT 7069                     /********服務器監聽端口號********/#define  BACKLOG 10                    /*******最大同時連接請求數*******/int       thread_num = 0;int       playtype;                    /***********播放方式*************/int       play;                        /***********是否播放*************/int       auto_play;                   /*******是否自動播放開始*********/int       auto_pause;                  /*******是否自動播放暫停*********/int       auto_stop;                   /*******是否自動播放停止*********/int       thread_play = 0;             /*******是否有線程在播放中*******/ int       pic_no = 0;                  /*********播放圖片序號***********/int       pic_total;                   /***********圖片總數*************/int       prj;char      *str1="image";char      *str2=".png";char      filename[20];char      picfilename[20];struct    picparam picparam_message;   /*******播放狀態信息*************/struct    fileinfo    {         int    id;                    /***保存圖片文件序號同下載順序***/         int    nextpic;               /*******保存圖片播放的序號*******/         int    delaytime;             /*****保存圖片播放的時間延遲*****/         char   file_title[50];        /***保存圖片文件序號的圖片標題***/    }files[20];int       j;                           /****手工下一幅播放的圖片序號****/int       manual_history[200];         /**足夠大的數組保存下幅播放順序**/int       manual_next_total = 0;       /****手工下一幅播放的圖片總數****/int       manual_prio_temp = 0;        /******手工上一幅播放的圖片******/void      service (void *ir);void      servicepic (int);void      picplayinit();               /*********設置開機圖片***********/void      handleprj();main(){    int ret, sin_size;    int serverport = 7069;    int sockfd, new_fd;           /*監聽socket: sock_fd,數據傳輸socket:new_fd*/    struct sockaddr_in my_addr;   /*本機地址信息*/    struct sockaddr_in their_addr;/*客戶地址信息*/    pthread_t   server_th;     picplayinit();                    /*****設置開機圖片******/    if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)    {         /*錯誤檢測*/        perror("Create socket error!!\n");         exit(1);    }    my_addr.sin_family=AF_INET;    my_addr.sin_port=htons(PORT);    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("Bind socket error!!!\n");           exit(1);    }    if (listen(sockfd, BACKLOG) == -1)    {        /*錯誤檢測*/        perror("Listen socket error!!!\n");         exit(1);    }    prj = 0;    play  = 0;    /***如果有工程文件則分析***/    handleprj();    printf("Waiting .... for connection. CTrl_c to stop !!!! \n");    while (1)     {         sin_size = sizeof(struct sockaddr_in);        printf("00000 after Creat pthread!!!\n");        if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1)         {            perror("Accept socket Error!!!\n");             continue;         }        printf("server: got connection from %s\n",inet_ntoa(their_addr.sin_addr));        ret = pthread_create(&server_th, NULL, (void *)service, &new_fd);        if (ret ==-1)        {            printf("bbbb after Creat pthread!!!\n");            printf("Creat pthread error!!!\n");            continue;        }        thread_num++;        printf("1111111111 right Creat pthread Succ id = [%d] new_fd = [%d]!!!\n", thread_num, new_fd);        //pthread_join(server_th, NULL);    }    close(sockfd);    return 0;}voidservice (void *ir){    int         i=0, k, ret;    int         *id = (int*) ir;    int         fd;                   int         sock;    int         receivesize;    unsigned    int retfgets;    unsigned    int retwrite;    FILE        *fdppj;    char        *buf;    char        *picbuf;    pthread_t   thread_auto;    struct  cmd      cmdmessage;    struct  pichead  picheadmessage;    struct  pic      picmessage;    sock = *id;    sprintf(filename, "%s", "test.txt");    for (;;)    {           memset(&cmdmessage, 0, sizeof(struct cmd));        ret = read(sock, (unsigned char*)&cmdmessage, sizeof(struct cmd));	if (ret < 0)         {        printf("22222  wrong pthread new_fd = [%d]!!!\n", sock);            printf("Get date from client error!! \n");            sleep(3);            picplayinit();                    /*****回到開機圖片******/            pthread_exit(NULL);	}        printf("33333333  right pthread Succ id = [%d] new_fd = [%d]!!!\n", thread_num, sock);        printf("\tCMD flag = [%0x] cmdtype [%d%d%d%d]\n\tnextdatalength = [%d] reserved = [%d]\n", cmdmessage.flag, cmdmessage.cmdtype[0],cmdmessage.cmdtype[1],cmdmessage.cmdtype[2], cmdmessage.cmdtype[3], cmdmessage.nextdatalength, cmdmessage.reserved);                 if (cmdmessage.cmdtype[0] == 1)               /*傳播放圖片狀態*/        {        printf("4444444  right pthread Succ id = [%d] new_fd = [%d]!!!\n", thread_num, sock);            /****取得正在播放圖片的序號*****/            picparam_message.header = 0x01020304;            picparam_message.state[0] = prj;              picparam_message.state[1] = play;            if(auto_pause == 1 && play == 1)            {                picparam_message.state[2] = 1;            }            else            {                picparam_message.state[2] = 0;            }            picparam_message.state[3] = files[pic_no].id;   /***為下載順序****/             picparam_message.reserved = playtype;              strcpy(picparam_message.title, files[pic_no].file_title);            printf("state = %d%d%d%d\n", picparam_message.state[0], picparam_message.state[1], picparam_message.state[2], picparam_message.state[3]);            ret = write(sock, (unsigned char *)&picparam_message, sizeof(struct picparam));            if ( ret < 0 )            {        printf("555555 wrong pthread Succ id = [%d] new_fd = [%d]!!!\n", thread_num, sock);            	printf("Write socket Error! in 3001 !!\n");                sleep(3);                picplayinit();                    /*****回到開機圖片******/                pthread_exit(NULL);            }            printf("Write socket succ! in 3001 !!\n");        }        else if (cmdmessage.cmdtype[0] == 2)             /***圖片下載****/        {	    receivesize = cmdmessage.nextdatalength;	    buf = (char *)malloc(receivesize);	    if(buf == NULL)            {	        printf("malloc buf error!\n");                sleep(5);                picplayinit();                    /*****回到開機圖片******/                pthread_exit(NULL);            }       	    ret = read_sock(sock,(unsigned char *)buf, receivesize);	    if(ret < 0)            {                printf("socket read file error!\n");                sleep(5);                picplayinit();                    /*****回到開機圖片******/                pthread_exit(NULL);            }       	    if((fd = open("temp.ppj", O_RDWR|O_CREAT|O_TRUNC)) < 0)            {            	printf("Creat ppj Error!\n");                sleep(5);                picplayinit();                    /*****回到開機圖片******/                pthread_exit(NULL);            }       	    if(write(fd, buf, receivesize) != receivesize)            {             	printf("Write Error!\n");                sleep(5);                picplayinit();                    /*****回到開機圖片******/                pthread_exit(NULL);            }       	    free(buf);	    close(fd);       	    if((fdppj = fopen("temp.ppj", "r")) < 0)            {		printf("Open ppj file Error!\n");                sleep(5);                picplayinit();                    /*****回到開機圖片******/                pthread_exit(NULL);            }	    retfgets = fread((unsigned char*)&picheadmessage, 1, sizeof(struct pichead), fdppj);	    /**設置播放方式***/	    playtype  = picheadmessage.playtype;            /**回傳成功信息***/            cmdmessage.cmdtype[0] = 0;            cmdmessage.cmdtype[1] = 0;            cmdmessage.cmdtype[2] = 0;            cmdmessage.cmdtype[3] = 3;            ret = write(sock, (unsigned char*)&cmdmessage, sizeof(struct cmd));            if (ret < 0)            {                printf("Send Ackcmd Error!! \n");                sleep(5);                picplayinit();                    /*****回到開機圖片******/                pthread_exit(NULL);            }            /****取得圖片文件總數*****/            pic_total = picheadmessage.piccount;           	    for (i=0; i<picheadmessage.piccount; i++)            {                memset(&cmdmessage, 0, sizeof(struct cmd));                /*****讀取下個圖片文件的信息 包括圖片的大小******/       	        ret = read(sock, (unsigned char*)&cmdmessage, sizeof(struct cmd));	        if (ret < 0)                 {                    printf("Get Clinet Infomation Error!! \n");                    sleep(5);                    picplayinit();                    /*****回到開機圖片******/                    pthread_exit(NULL);                }		memset(&picmessage, 0, sizeof(struct pic));                /***從工程文件中讀取下個圖片文件的信息 包括圖片的大小******/	        retfgets = fread((unsigned char*)&picmessage, 1, sizeof(struct pic), fdppj);		receivesize = picmessage.size;			buf = (char *)malloc(receivesize);               	if(buf == NULL)                {                    printf("malloc buf error!\n");                    sleep(5);                    picplayinit();                    /*****回到開機圖片******/                    pthread_exit(NULL);                }                /*******接收一副圖片****/		ret = read_sock(sock, (unsigned char *)buf, receivesize);                if(ret < 0)                {                    printf("socket read file error!\n");                    sleep(5);                    picplayinit();                    /*****回到開機圖片******/                    pthread_exit(NULL);                }                /***命名新圖片名稱   建立返回圖片與播放圖片間的關系***/                 sprintf(picfilename, "%s%d%s", str1, i, str2);       		if((fd = open(picfilename, O_RDWR|O_CREAT|O_TRUNC)) < 0)                {                    printf("Creat pic %d Error!\n",i);                    sleep(5);                    picplayinit();                    /*****回到開機圖片******/		}                if((retwrite = write(fd, (unsigned char *)buf, receivesize)) != receivesize)                {                    printf("Write Error!\n");                    sleep(5);                    picplayinit();                    /*****回到開機圖片******/                    pthread_exit(NULL);                }                free(buf);                close(fd);                /****建立返回圖片與播放圖片間的關系****/                files[i].id = i;                files[i].nextpic = picmessage.nextpic;                files[i].delaytime = picmessage.delay;                memset(files[i].file_title, 0, sizeof(char)*50);	        strcpy(files[i].file_title, picmessage.title);                /**回傳成功信息***/                cmdmessage.cmdtype[0] = 0;                cmdmessage.cmdtype[1] = 0;                cmdmessage.cmdtype[2] = 0;                cmdmessage.cmdtype[3] = 3;                ret = write(sock, (unsigned char *)&cmdmessage, sizeof(struct cmd)) ;                if ( ret < 0 )                {                    printf("Write socket Error! in 3002 !!\n");                    sleep(5);                    picplayinit();                    /*****回到開機圖片******/                    pthread_exit(NULL);                }	    }	    close(fdppj);	    for (i=0; i<pic_total; i++)	    {		 printf("\tid = [%d], nextpic = [%d]\n\tdelaytime = [%d] title = [%s]\n", files[i].id, files[i].nextpic, files[i].delaytime, files[i].file_title);	    }            /***下載結束工程文件存在***/            prj = 1;        }        else if (cmdmessage.cmdtype[0] == 4)             /***圖片播放****/        {            printf("Start play picture!\n");            /****處理工程文件****/            if (prj == 0)            {                handleprj();            }            if ( prj != 1)            {                /***打開工程文件失敗***/                cmdmessage.cmdtype[0] = 0x10;                cmdmessage.cmdtype[1] = 0;                cmdmessage.cmdtype[2] = 0;                cmdmessage.cmdtype[3] = 3;                ret = write(sock, (unsigned char *)&cmdmessage, sizeof(struct cmd)) ;                if ( ret < 0 )                {            	    printf("Write socket Error! in 3004 !!\n");                    sleep(5);                    picplayinit();                    /*****回到開機圖片******/                    pthread_exit(NULL);                }            	printf("Has no picproject!!\n");                sleep(5);                picplayinit();                    /*****回到開機圖片******/                pthread_exit(NULL);            }            play = 1;            if (playtype == 0)         /**自動播放**/            {                /*****告訴線程自動播放******/                auto_play = 1;                auto_pause = 0;                auto_stop  = 0;     /***如果原來有線程運行則停止原來線程****/                /*****調用線程播放圖片*****/	        /**pic_no為圖片自動播放時候的開始位置**/		if (thread_play == 0)		{		    ret = pthread_create(&thread_auto, NULL, (void *)servicepic, pic_no);		    if (ret != 0)		    {		        printf("Creat pthread error!!!\n");                        sleep(5);                        picplayinit();                /*****回到開機圖片******/                        pthread_exit(NULL);		    }		    thread_play = 1;	        }                printf("pause play succ!!\n");            }            else if (playtype == 1)    /**手工播放**/            {		/***設置播放歷史為第一幅圖片***/		manual_history[0] = 0;		/****播放第一幅圖片總數為一****/		manual_next_total = 1;                manual_prio_temp = manual_next_total;                 /***查找需要播放圖片的保存文件名稱****/                sprintf(picfilename, "%s%d%s", str1, pic_no, str2);                /****將要播放的圖片名稱寫文件****/	        if((fd=open(filename, O_CREAT||O_TRUNC))==-1)	        {	            fprintf(stderr,"Open %s Error:%s\n",filename, strerror(errno));                    sleep(5);                    picplayinit();                /*****回到開機圖片******/                    pthread_exit(NULL);	        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线播| 欧美一级黄色录像| 这里只有精品99re| 国产色综合一区| 日本系列欧美系列| 欧美午夜一区二区三区| 久久精品人人做| 免播放器亚洲一区| 欧美日本在线一区| 一区二区三区高清在线| 成人短视频下载| 久久综合精品国产一区二区三区| 亚洲综合在线五月| 99久久精品情趣| 亚洲大片精品永久免费| 成人av电影免费在线播放| 精品国产一区二区三区久久久蜜月| 亚洲精品乱码久久久久久久久 | 日韩欧美中文一区| 亚洲国产毛片aaaaa无费看| 99久久久国产精品| 国产精品国产自产拍在线| 国产伦精一区二区三区| 日韩一二在线观看| 蜜桃一区二区三区在线观看| 欧美午夜不卡在线观看免费| 一区二区三区精品在线| 99re这里都是精品| 亚洲女人****多毛耸耸8| 91一区二区三区在线观看| 中文字幕av一区二区三区高| 国产呦萝稀缺另类资源| 精品伦理精品一区| 国产乱码精品一区二区三| 精品国产第一区二区三区观看体验| 日本美女一区二区| 日韩亚洲欧美在线观看| 久久66热偷产精品| 国产亚洲成aⅴ人片在线观看| 国产精品一二三四五| 老司机精品视频在线| 日本欧美大码aⅴ在线播放| 日韩久久久精品| 国产精品一区三区| 国产精品电影一区二区| 91老师国产黑色丝袜在线| 亚洲影视在线观看| 欧美一级生活片| 国产综合一区二区| 亚洲四区在线观看| 欧美精品一卡两卡| 国产精品自拍网站| 亚洲男人都懂的| 欧美剧情电影在线观看完整版免费励志电影 | 青青草91视频| 久久久天堂av| 色综合色综合色综合色综合色综合 | 日韩精品专区在线影院重磅| 国产在线播放一区| 亚洲欧美日韩国产综合| 欧美精品在线视频| 成人精品国产福利| 视频一区在线视频| 亚洲国产成人一区二区三区| 一本久久综合亚洲鲁鲁五月天 | 久久精品国产精品青草| 欧美激情中文字幕| 欧美男人的天堂一二区| 国产盗摄一区二区| 亚洲v中文字幕| 久久精品亚洲精品国产欧美 | 亚洲一二三专区| 久久综合成人精品亚洲另类欧美 | 欧美妇女性影城| 成人免费视频app| 日韩高清不卡一区| 中文字幕在线不卡一区二区三区| 欧美裸体bbwbbwbbw| 成人h动漫精品一区二区| 首页综合国产亚洲丝袜| 国产精品二三区| 精品久久久久一区| 欧美日韩亚洲高清一区二区| 国产精品一区久久久久| 日韩精品成人一区二区在线| 中文字幕一区二区三区在线不卡| 日韩精品一区二区在线| 欧美亚洲图片小说| 99re这里只有精品视频首页| 国产美女主播视频一区| 奇米影视一区二区三区小说| 一区二区三区四区在线| 中文一区在线播放| 2023国产一二三区日本精品2022| 欧美日韩国产一级二级| 一本一本久久a久久精品综合麻豆| 国产曰批免费观看久久久| 免费观看日韩av| 天天av天天翘天天综合网色鬼国产 | 成人免费视频免费观看| 国产尤物一区二区在线| 麻豆精品一区二区综合av| 亚洲va欧美va人人爽午夜 | 在线观看视频一区二区| 成人国产免费视频| 成人国产在线观看| 不卡一区在线观看| 成人av影视在线观看| 国产成人免费9x9x人网站视频| 麻豆一区二区99久久久久| 日韩电影在线看| 蜜桃视频第一区免费观看| 蜜桃视频在线观看一区| 麻豆精品久久久| 日本怡春院一区二区| 五月综合激情网| 男男gaygay亚洲| 日韩**一区毛片| 麻豆一区二区在线| 国产乱人伦偷精品视频免下载| 国产一区二区三区在线观看免费 | 亚洲一区二区三区四区在线免费观看 | 欧美大片在线观看| 精品精品国产高清a毛片牛牛 | 国产精品国产三级国产aⅴ中文| 中文字幕+乱码+中文字幕一区| 欧美国产欧美亚州国产日韩mv天天看完整| 国产亚洲午夜高清国产拍精品| 国产色91在线| 亚洲美女免费在线| 亚洲成人av福利| 美女精品一区二区| 成人深夜福利app| 91国产福利在线| 欧美一区三区二区| 久久久亚洲精品石原莉奈 | 韩国理伦片一区二区三区在线播放| 激情偷乱视频一区二区三区| 国产成人亚洲综合色影视| 99久久99久久精品免费观看| 在线精品国精品国产尤物884a| 91精品国产乱| 国产亚洲精品超碰| 亚洲综合免费观看高清完整版在线 | 国产专区综合网| 97aⅴ精品视频一二三区| 欧美日韩情趣电影| 久久久久久免费毛片精品| 亚洲免费在线视频| 蜜臀av一区二区三区| 东方aⅴ免费观看久久av| 欧美性猛片xxxx免费看久爱| 久久综合九色综合欧美98 | 中文字幕乱码日本亚洲一区二区| 一区二区三区不卡在线观看| 日韩av电影一区| 成人av网站在线观看免费| 欧美精品三级日韩久久| 国产精品色在线| 视频一区二区三区入口| 成人性生交大片| 欧美变态tickle挠乳网站| 有码一区二区三区| 国产成人午夜电影网| 制服丝袜中文字幕亚洲| 国产精品国产三级国产a| 久久国产精品区| 欧美综合天天夜夜久久| 国产欧美日韩另类视频免费观看| 五月天丁香久久| 在线一区二区视频| 亚洲国产精品精华液2区45| 日日摸夜夜添夜夜添精品视频| 成人免费观看av| 久久午夜电影网| 美女视频黄 久久| 欧美日韩在线播放一区| 亚洲美女屁股眼交3| www.久久久久久久久| 久久综合狠狠综合久久综合88| 午夜精品aaa| 欧美性色黄大片手机版| 亚洲日本在线a| 不卡的av网站| 中文一区二区在线观看| 激情偷乱视频一区二区三区| 欧美日韩高清在线| 亚洲自拍另类综合| 色婷婷亚洲精品| 亚洲欧洲无码一区二区三区| 大桥未久av一区二区三区中文| 久久婷婷成人综合色| 看电影不卡的网站| 日韩欧美国产综合| 美女在线观看视频一区二区| 91精品国产一区二区| 日本视频一区二区三区| 日韩免费观看高清完整版| 免播放器亚洲一区| 精品国产乱码91久久久久久网站|