一个简单的IPv6 socket 程序

本文介绍了IPv6 socket编程的基础知识,对比了与IPv4的区别。通过示例代码展示了如何使用新的数据结构struct sockaddr_in6和in6_addr进行IPv6地址的初始化及连接操作。在IPv6编程中,socket函数配置了协议类型,然后将IPv6地址转换为数字表示,最后通过connect函数进行连接,整个过程类似于IPv4,但采用了适应IPv6的数据结构。
摘要由CSDN通过智能技术生成

先回顾一下, IPv4 socket 编程我们用到这两个数据结构:

struct sockaddr {
        u_char          sa_len;         /* total length */
        sa_family_t     sa_family;      /* address family */
        char            sa_data[14];    /* actually longer; address value */
};

struct sockaddr_in
{
        UCHAR   sin_len;
        UCHAR   sin_family;
        VOS_UINT16  sin_port;
        struct  in_addr sin_addr;
        CHAR  sin_zero[8];
};

struct sockaddr 是一个通用的概念,表示任何socket address, connect,bind, recvfrom 等函数用的就是它; struct sockaddr_in 特别表示IPv4 internet address。 我们在做IPv4 编程的时候,其实脑子里已经确定了是在用IPv4的概念,初始化socket 的时候用的是IPv4, 然后把 sockaddr_in 转换为 sockaddr。 这是一个例子:

        int sockfd, n;
        char recvline[MAXLINE + 1];
        struct sockaddr_in servaddr;

        if (argc 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值