首页 > 其他 > 详细

unix域字节流客户/服务器回射程序(不完整)

时间:2019-04-24 22:31:32      阅读:128      评论:0      收藏:0      [点我收藏+]

一、服务器程序

int main(int argc, char **argv)
{
    int                    listenfd, connfd;
    pid_t                childpid;
    socklen_t            clilen;
    struct sockaddr_un    cliaddr, servaddr;
    void                sig_chld(int);

    listenfd = socket(AF_LOCAL, SOCK_STREAM, 0);

    unlink(UNIXSTR_PATH);
    bzero(&servaddr, sizeof(servaddr));
    servaddr.sun_family = AF_LOCAL;
    strcpy(servaddr.sun_path, UNIXSTR_PATH);

    bind(listenfd, (SA *) &servaddr, sizeof(servaddr));

    listen(listenfd, LISTENQ);

    signal(SIGCHLD, sig_chld);

    for ( ; ; ) {
        clilen = sizeof(cliaddr);
        if ( (connfd = accept(listenfd, (SA *) &cliaddr, &clilen)) < 0) {
            if (errno == EINTR)
                continue;                 /* back to for() */
            else
                err_sys("accept error");
        }

        if ( (childpid = fork()) == 0) {  /* child process */
            close(listenfd);              /* close listening socket */
            str_echo(connfd);             /* process request */
            exit(0);
        }
        close(connfd);                    /* parent closes connected socket */
    }
}

二、客户端程序

int main(int argc, char **argv)
{
    int                    sockfd;
    struct sockaddr_un    cliaddr, servaddr;

    sockfd = socket(AF_LOCAL, SOCK_DGRAM, 0);

    bzero(&cliaddr, sizeof(cliaddr));        /* bind an address for us */
    cliaddr.sun_family = AF_LOCAL;
    strcpy(cliaddr.sun_path, tmpnam(NULL));

    bind(sockfd, (SA *) &cliaddr, sizeof(cliaddr));

    bzero(&servaddr, sizeof(servaddr));    /* fill in server‘s address */
    servaddr.sun_family = AF_LOCAL;
    strcpy(servaddr.sun_path, UNIXDG_PATH);

    dg_cli(stdin, sockfd, (SA *) &servaddr, sizeof(servaddr));

    exit(0);
}

 

unix域字节流客户/服务器回射程序(不完整)

原文:https://www.cnblogs.com/soldierback/p/10765369.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!