码迷,mamicode.com
首页 > 其他好文 > 详细

aaa

时间:2016-02-03 17:23:17      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

#include <stdio.h>
#include <string.h>

#include <iostream>

#include <sys/socket.h>
#include <netdb.h>

#include <fcntl.h>

static int setSocketNonBlock(const int socketFd)
{
    int ret(0);

    int flags = fcntl(socketFd, F_GETFL, 0);
    if (-1 == flags)
    {
        perror("fcntl");
        return -1;
    }

    flags |= O_NONBLOCK;
    ret = fcntl(socketFd, F_SETFL, flags);
    if (-1 == ret)
    {
        perror("fcntl");
        return -1;
    }

    return 0;
}

static int setSocketLingerDisable(const int socketFd)
{
    int ret(0);

    struct linger lingerVal;
    lingerVal.l_onoff = 1;
    lingerVal.l_linger = 0;
    ret = setsockopt(socketFd, SOL_SOCKET, SO_LINGER, &lingerVal, sizeof(struct linger));
    if (0 != ret)
    {
        perror("setsockopt");
        return -1;
    }

    return 0;
}

static int create_and_bind()
{
    int ret(0);

    struct addrinfo hints;
    struct addrinfo * retAddr, * retNext;

    memset(&hints, 0, sizeof(struct addrinfo));
    hints.ai_family = AF_UNSPEC;
    hints.ai_socktype = SOCK_STREAM;
    hints.ai_protocol = IPPROTO_TCP;
    hints.ai_flags = AI_PASSIVE;
    ret = getaddrinfo(NULL, "8090", &hints, &retAddr);
    if (0 != ret)
    {
        perror("getaddrinfo");
        return -1;
    }

    for (retNext = retAddr; retNext != NULL; retNext = retNext->ai_next)
    {
        char ipBuf[1024];
        switch(retNext->ai_family)
        {
        case AF_INET:
            inet_ntop(AF_INET, ((struct sockaddr_in *)(retNext->ai_addr))->sin_addr, ipBuf, sizeof(char[1024]))
            break;
        case AF_INET6:
            break;
        }
        inet_ntop()
    }

    return 0;
}
int main(int argc, char **argv)
{


    return 0;
}

aaa

标签:

原文地址:http://www.cnblogs.com/itpoorman/p/5180123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!