在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Linux網(wǎng)絡(luò)編程之:網(wǎng)絡(luò)高級(jí)編程

            嵌入式Linux網(wǎng)絡(luò)編程之:網(wǎng)絡(luò)高級(jí)編程

            作者: 時(shí)間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

            本文引用地址:http://www.biyoush.com/article/257115.htm

            2.()

            使用()函數(shù)雖然可以實(shí)現(xiàn)非阻塞I/O或信號(hào)驅(qū)動(dòng)I/O,但在實(shí)際使用時(shí)往往會(huì)對(duì)資源是否準(zhǔn)備完畢進(jìn)行循環(huán)測(cè)試,這樣就大大增加了不必要的CPU資源的占用。在這里可以使用()函數(shù)來解決這個(gè)問題,同時(shí),使用()函數(shù)還可以設(shè)置等待的時(shí)間,可以說功能更加強(qiáng)大。下面是使用select()函數(shù)的服務(wù)器端源代碼。客戶端程序基本上與10.2.3小節(jié)中的例子相同,僅加入一行sleep()函數(shù),使得客戶端進(jìn)程等待幾秒鐘才結(jié)束。

            /*net_select.c*/

            #includesys/types.h>

            #includesys/socket.h>

            #includestdio.h>

            #includestdlib.h>

            #includestring.h>

            #includesys/time.h>

            #includesys/ioctl.h>

            #includeunistd.h>

            #includenetinet/in.h>

            #definePORT4321

            #defineMAX_QUE_CONN_NM5

            #defineMAX_SOCK_FDFD_SETSIZE

            #defineBUFFER_SIZE1024

            intmain()

            {

            structsockaddr_inserver_sockaddr,client_sockaddr;

            intsin_size,count;

            fd_setinset,tmp_inset;

            intsockfd,client_fd,fd;

            charbuf[BUFFER_SIZE];

            if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)

            {

            perror(socket);

            exit(1);

            }

            server_sockaddr.sin_family=AF_INET;

            server_sockaddr.sin_port=htons(PORT);

            server_sockaddr.sin_addr.s_addr=INADDR_ANY;

            bzero((server_sockaddr.sin_zero),8);

            inti=1;/*允許重復(fù)使用本地地址與套接字進(jìn)行綁定*/

            setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,i,sizeof(i));

            if(bind(sockfd,(structsockaddr*)server_sockaddr,

            sizeof(structsockaddr))==-1)

            {

            perror(bind);

            exit(1);

            }

            if(listen(sockfd,MAX_QUE_CONN_NM)==-1)

            {

            perror(listen);

            exit(1);

            }

            printf(listening....n);

            /*將調(diào)用socket()函數(shù)的描述符作為文件描述符*/

            FD_ZERO(inset);

            FD_SET(sockfd,inset);

            while(1)

            {

            tmp_inset=inset;

            sin_size=sizeof(structsockaddr_in);

            memset(buf,0,sizeof(buf));

            /*調(diào)用select()函數(shù)*/

            if(!(select(MAX_SOCK_FD,tmp_inset,NULL,NULL,NULL)>0))

            {

            perror(select);

            }

            for(fd=0;fdMAX_SOCK_FD;fd++)

            {

            if(FD_ISSET(fd,tmp_inset)>0)

            {

            if(fd==sockfd)

            {/*服務(wù)端接收客戶端的連接請(qǐng)求*/

            if((client_fd=accept(sockfd,

            (structsockaddr*)client_sockaddr,sin_size))==-1)

            {

            perror(accept);

            exit(1);

            }

            FD_SET(client_fd,inset);

            printf(Newconnectionfrom%d(socket)n,client_fd);

            }

            else/*處理從客戶端發(fā)來的消息*/

            {

            if((count=recv(client_fd,buf,BUFFER_SIZE,0))>0)

            {

            printf(Receivedamessagefrom%d:%sn,

            client_fd,buf);

            }

            else

            {

            close(fd);

            FD_CLR(fd,inset);

            printf(Client%d(socket)hasleftn,fd);

            }

            }

            }/*endofifFD_ISSET*/

            }/*endofforfd*/

            }/*endifwhilewhile*/

            close(sockfd);

            exit(0);

            }

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            linux相關(guān)文章:linux教程




            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉