套接字socket编程运用到的函数-作用及用法

本文详细介绍了套接字socket编程中的关键函数,包括socket函数的使用,网络地址结构体,如struct sockaddr_in,以及bind、listen、accept、connect、shutdown、write、send、recv和recvfrom等函数的作用和用法,帮助开发者更好地理解和运用套接字编程。
摘要由CSDN通过智能技术生成

1,socket具体的API函数解析
    (1) socket :创建一个套接字
        #include <sys/types.h>          /* See NOTES */
        #include <sys/socket.h>

        int socket(int domain, int type, int protocol);
            domain: 指定域/协议族
                socket接口不仅仅局限于TCP/IP,他还可以本地通信...
                每一种通信模式下面都有一系列自己的协议,归到一类:协议族
                AF_UNIX, AF_LOCAL   Local communication              unix(7)
                AF_INET             IPv4 Internet protocols          ip(7)
                AF_INET6            IPv6 Internet protocols          ipv6(7)

            type:套接字类型
                SOCK_STREAM 流式套接字    用于TCP
                SOCK_DGRAM    数据报套接字 用于UDP
                SOCK_RAW    原始套接字    用于本地域协议
                
            protocol:指定具体的应用层协议
                        一般为0,代表不知名的私有协议
        
            返回值:
                成功返回套接字描述符 (特殊的文件描述符)
                失败返回-1
                
    (2) 网络地址
        我们日常口头上说的网络地址一般是指 IP地址
        但是在socket编程中,规范的讲:网络地址是一个结构体
        
        不同的协议族,他的网络地址结构体是不一样
        socket编程接口,提供了一个 通用的网络地址结构体
        
        struct sockaddr {
               sa_family_t sa_family;//指定协议族
               char        sa_data[14];
               //没有确定的含义(不同的协议族有不同的含义),
               //只是占用14个字节
        };
        
        ipv4协议族的网络地址结构体
        定义在 #include<netinet/in.h>
        
        struct sockaddr_in
        {
            sa_family_t sin_family;//指定协议族
            u_int16 sin_port;//端口号
            struct in_addr sin_addr;//IPV4地址
            unsigned char sin_zero[8];//填充8个字节࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值