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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sockserv.c

?? 實(shí)戰(zhàn)的linux socket編程--示例源碼
?? C
字號(hào):
/* sockserv.c : * * This simple server will serve up a socket * to a valid recipient: */#include "common.h"#include <pwd.h>/* * Check user's access : * * RETURNS: *  ptr     To (struct passwd *) if granted. *  NULL    Access is to be denied. */static struct passwd *check_access(  int port,        /* Port being requested */  struct ucred *pcred, /* User credentials */  char **uidlist) { /* List of valid users */    int x;    struct passwd *pw; /* User passwd entry */    /*     * Look the user's uid # up in the     * /etc/password file:     */    if ( (pw = getpwuid(pcred->uid)) != 0 ) {        /*         * Make sure request is coming from         * one of the acceptable users:         */        for ( x=0; uidlist[x]; ++x )             if ( !strcmp(uidlist[x],pw->pw_name) )                break;        if ( !uidlist[x] )             pw = 0;       /* Access denied */    }    /*     * Screen the port #. For this demo,     * only port 80 is permitted.     */    if ( port != 80 )        pw = 0;           /* Access denied */    return pw;   /* NULL or ptr if granted */}/* * Access has been granted: send socket * to client. * * ARGUMENTS: *  c       Client socket *  port    Port requested * * RETURNS: *  0       Success *  -1      Failed: check errno */static intgrant_access(int c,int port) {    int z;    int fd = -1;           /* New socket fd */    int b = TRUE;           /* Boolean TRUE */    struct sockaddr_in addr;/* work address */    /*     * Create a new TCP/IP socket:     */    fd = socket(PF_INET,SOCK_STREAM,0);    if ( fd == -1 ) {        perror("socket(2)");        goto errxit;    }    /*     * Turn on SO_REUSEADDR :     */    z = setsockopt(fd,SOL_SOCKET,        SO_REUSEADDR,&b,sizeof b);    if ( z == -1 )        bail("setsockopt(2)");    /*     * Create the address to bind:     */    memset(&addr,0,sizeof addr);    addr.sin_family = AF_INET;    addr.sin_port = ntohs(port);    addr.sin_addr.s_addr = ntohl(INADDR_ANY);    /*     * Bind the requested address:     */    z = bind(fd,        (struct sockaddr *)&addr,        sizeof addr);    if ( z == -1 ) {        fprintf(stderr,"%s: binding port %d\n",            strerror(errno),port);        goto errxit;    }    /*     * Send the fd back to the     * requesting client:     */    z = send_fd(c,fd,NULL,0);    if ( z == -1 ) {        perror("send_fd()");        goto errxit;    }    close(fd);         /* finished with fd */    return 0;                   /* Success */errxit:    z = errno;               /* Save errno */    if ( fd )        close(fd);       /* Release socket */    errno = z;            /* Restore errno */    return -1;}/* * Process a connected client's request: */voidprocess_client(  int c,                   /* Client socket */  char **uidlist     /* List of valid users */  ) {    int z;    int er;         /* Captured errno value */    int b = TRUE;          /* Boolean: True */    struct ucred cred;  /* Clnt credentials */    short port;     /* Port being requested */    struct passwd *pw; /* User passwd entry */    /*     * Now make certain that we can receive     * credentials on this socket:     */    z = setsockopt(c,        SOL_SOCKET,        SO_PASSCRED,        &b,        sizeof b);    if ( z )        bail("setsockopt(2)");    /*     * Receive a request with the     * user credentials:     */    z = recv_cred(c,         /* socket */        &cred, /* Returned credentials */        &port,      /* Returned port # */        sizeof port,   /* Size of data */        NULL, 0); /* no socket address */    if ( z == -1 )        perror("recv_cred()");    /*     * Now check access. If pw is returned     * as non-NULL, the request is OK.     */    pw = check_access(port,&cred,uidlist);    if ( pw ) {        if ( !grant_access(c,port) ) {            close(c);            return;   /* request sucessful */        }        /* Failed */        er = errno;      /* Capture reason */    } else {        /*         * Userid was not known, or not in         * the priviledged list:         */        er = EACCES;        /* Perm denied */    }    /*     * Control reaches here if the     * request failed or is denied:     *     * Here we simply send the error     * code back without a file     * descriptor. This lack of a fd     * will be detected by the client.     */    do  {        z = write(c,&er,sizeof er);    } while ( z == -1 && errno == EINTR );    if ( z == -1 )        perror("write(2)");}/* * Main program : */intmain(int argc,char **argv) {    int z;    int s;             /* Server UDP socket */    int c;                 /* Client socket */    int alen;             /* Address length */    struct sockaddr_un a_srvr;  /* Server @ */    struct sockaddr_un a_clnt;  /* Client @ */    /*     * Make sure we have a userid specified:     */    if ( argc < 2 ) {        fputs("Must have at least 1 userid.\n",            stderr);        exit(1);    }    /*     * Create a Unix Socket:     */    s = socket(PF_LOCAL,SOCK_STREAM,0);    if ( s == -1 )        bail("socket(2)");    /*     * Create abstract address:     */    memset(&a_srvr,0,sizeof a_srvr);    a_srvr.sun_family = AF_LOCAL;    strncpy(a_srvr.sun_path,        "zSOCKET-SERVER",        sizeof a_srvr.sun_path-1);    a_srvr.sun_path[0] = 0;    /*     * Bind the server address:     */    z = bind(s,        (struct sockaddr *)&a_srvr,        sizeof a_srvr);    if ( z == -1 )        bail("bind(2)");        /*     * Now make this a listening socket:     */    z = listen(s,10);    if ( z == -1 )        bail("listen(2)");    /*     * Now process requests:     */    for (;;) {        /*         * Wait for a connect:         */        alen = sizeof a_clnt;        c = accept(s,&a_clnt,&alen);        if ( c == -1 )            bail("accept(2)");        /*         * Process this request:         */        process_client(c,argv+1);        close(c);    }    return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re成人在线| 日本视频中文字幕一区二区三区| 国产精品中文有码| 精品国产一区二区三区久久久蜜月 | 色呦呦日韩精品| 亚洲精品成人在线| 欧美影院午夜播放| 丝袜美腿亚洲色图| 日韩免费在线观看| 国产东北露脸精品视频| 国产精品日产欧美久久久久| 99久久免费精品高清特色大片| 亚洲久草在线视频| 欧美精品成人一区二区三区四区| 视频一区在线播放| 久久九九久精品国产免费直播| 成人一级片在线观看| 亚洲色图欧洲色图| 欧美高清激情brazzers| 九色综合狠狠综合久久| 国产精品青草久久| 欧美另类变人与禽xxxxx| 极品美女销魂一区二区三区| 日韩理论电影院| 欧美美女一区二区在线观看| 狠狠色综合日日| 亚洲视频网在线直播| 91精品国产色综合久久不卡电影| 激情五月激情综合网| 亚洲人123区| 欧美一级久久久| 不卡的av中国片| 亚洲成av人综合在线观看| 久久久久久久av麻豆果冻| 日本精品视频一区二区| 经典一区二区三区| 亚洲免费在线视频一区 二区| 91精品国产91久久综合桃花 | 国产成人在线网站| 亚洲亚洲精品在线观看| 久久亚洲精精品中文字幕早川悠里| 91免费观看在线| 韩国三级电影一区二区| 亚洲国产另类精品专区| 亚洲国产精品精华液2区45| 欧美偷拍一区二区| 不卡的电影网站| 精品一区二区三区久久| 亚洲日本丝袜连裤袜办公室| 2020国产精品自拍| 欧美三级在线播放| 91在线观看下载| 国产精品一区免费视频| 日韩国产在线一| 亚洲伦理在线精品| 中文字幕乱码亚洲精品一区| 日韩精品在线网站| 欧美日韩免费一区二区三区视频 | 国产一区二区三区免费观看| 一区二区三区四区精品在线视频| 国产欧美日韩精品一区| 日韩欧美不卡一区| 91.麻豆视频| 欧美亚洲动漫精品| 在线观看一区日韩| 91一区二区在线| 成人黄色免费短视频| 国产精品18久久久| 国产成人av网站| 国产精品小仙女| 国产一区二区三区四区五区入口| 免费看欧美美女黄的网站| 亚洲成人动漫av| 午夜电影网亚洲视频| 亚洲一区中文日韩| 一区二区三区 在线观看视频| 亚洲人成网站在线| 亚洲乱码国产乱码精品精可以看 | 亚洲国产aⅴ成人精品无吗| 亚洲免费视频成人| 亚洲综合视频网| 亚洲一区二区三区视频在线播放| 亚洲已满18点击进入久久| 亚洲一二三区不卡| 午夜精品影院在线观看| 日av在线不卡| 久久国产剧场电影| 国产传媒日韩欧美成人| 成人免费黄色在线| 91国在线观看| 欧美日本韩国一区二区三区视频 | 精品久久人人做人人爰| 久久久噜噜噜久久人人看| 国产视频911| 中文字幕在线不卡| 夜夜嗨av一区二区三区网页| 亚欧色一区w666天堂| 久久精品国产一区二区| 国产一区二区三区精品视频| 高清国产一区二区| 91美女片黄在线观看| 欧美色网站导航| 精品日韩在线一区| 国产精品国产三级国产普通话蜜臀| 亚洲欧洲色图综合| 天天综合色天天| 国产在线观看免费一区| 99视频在线精品| 欧美日韩中文另类| 欧美r级电影在线观看| 亚洲欧美综合另类在线卡通| 亚洲一二三区视频在线观看| 蜜桃精品在线观看| 成人免费看片app下载| 欧美午夜电影网| 欧美精品一区视频| 亚洲欧美日韩久久精品| 美女诱惑一区二区| 成人教育av在线| 欧美日韩国产中文| 国产精品三级av| 亚洲成av人片www| 国产成人久久精品77777最新版本| 色综合色综合色综合色综合色综合 | 国产精品污www在线观看| 亚洲国产视频在线| 丁香婷婷深情五月亚洲| 69堂精品视频| 亚洲人成在线播放网站岛国| 激情伊人五月天久久综合| 在线视频欧美区| 欧美国产亚洲另类动漫| 日本一不卡视频| 色综合天天天天做夜夜夜夜做| 日韩精品影音先锋| 亚洲成人激情综合网| yourporn久久国产精品| 精品乱码亚洲一区二区不卡| 亚洲国产视频在线| 色婷婷激情综合| 日本一区二区视频在线| 日韩制服丝袜av| 在线国产电影不卡| 亚洲天堂2016| 成人免费va视频| 久久久www成人免费毛片麻豆| 日韩激情一区二区| 欧美性色黄大片| 中文字幕亚洲不卡| 国产麻豆91精品| 欧美一级一区二区| 亚洲午夜免费福利视频| 色综合久久中文字幕综合网| 国产片一区二区| 国产乱对白刺激视频不卡| 欧美一区二区三区白人| 午夜久久久久久久久| 欧美日韩专区在线| 亚洲午夜激情av| 欧美亚洲高清一区二区三区不卡| 尤物视频一区二区| 91精品91久久久中77777| 亚洲精品美腿丝袜| 91麻豆精东视频| 亚洲色图视频免费播放| 91蜜桃视频在线| 一区二区欧美在线观看| 日本高清免费不卡视频| 一区二区视频免费在线观看| 一本色道亚洲精品aⅴ| 日韩理论片一区二区| 91蜜桃网址入口| 亚洲电影一级黄| 欧美精品视频www在线观看| 亚洲午夜一区二区三区| 欧美日韩电影在线播放| 亚洲国产日日夜夜| 欧美人动与zoxxxx乱| 亚洲成av人**亚洲成av**| 欧美肥妇bbw| 轻轻草成人在线| 精品国产伦理网| 国产一区二区伦理| 亚洲国产精品高清| 91在线视频观看| 亚洲国产毛片aaaaa无费看| 69久久99精品久久久久婷婷| 久久精品国产一区二区三区免费看| 久久综合九色综合欧美98| 成人高清视频免费观看| 亚洲综合色在线| 欧美成人精精品一区二区频| 国产一区二三区| 18涩涩午夜精品.www| 欧美日韩五月天| 国产一区二区影院| 成人欧美一区二区三区视频网页| 欧美亚洲动漫制服丝袜| 九色|91porny| 国产精品乱人伦|