• linux 的网络编程 (一)


    1.linux 的网络套接字操作函数

    1.1 创建套接字描述符函数

    linux 使用socket函数来创建一个套接字描述符,对该函数的调用如下:

    #include <sys/types.h>
    #include <sys/socket.h>
    int scoket(int domain,int type,int protocol)
    /*
    函数调用成功返回套接字的描述符,否则返回-1
    参数说明:
    1.domain:套接字的协议
    2.type:套接字的类型
    3.protocol:除了使用原始套接字以外,通常情况下设置为0,以表示使用默认的协议
    */

    socket函数支持的协议族:

    1. AF_UNIX,AF_LOCAL:本地交互协议
    2. AF_INET:IPv4协议
    3. AF_INET6: IPv6协议
    4. AF_NETLINK:内核接口设备协议
    5. AF_IPX:IPX-Novell协议
    6. AF_X25:ITU-T.25/ISO-8208协议
    7. AF_AX25:业余无线电AX.25协议
    8. AF_ATMPVC:原始ATM接入协议
    9. AF_APPLETALK:苹果的appletalk协议
    10. AF_PACKET:底层的数据包接口

    socket 函数支持的套接字类型:

    1.  SOCK_STREAM:数据流
    2. SOCK_DGRAM:数据报
    3. SOCK_SEQPACKET:顺序数据报
    4. SOCK_RAW:原始套接字
    5. SOCK_RDM:可靠传递消息
    6. SOCK_PACKET:数据包

    使用socket函数创建套接字代码socket_demo.c如下:

    #include <sys/types.h>
    #include <sys/socket.h>
    #include <stdio.h>
    int main (){
            int socket_fd;
            socket_fd = socket(AF_INET,SOCK_STREAM,0);
            if (socket_fd < 0)
            {
                    printf("scoket fails\n");
                    return 1;
            }
            else
            {
                    printf("scoket success\n");
            }
            return 0;
    }

    编译代码:gcc -o socket socket_demo.c

    代码运行结果:

    [root@localhost socket]# ./socket
    scoket success
    [root@localhost socket]#

  • 相关阅读:
    mybatis几种开发方式
    SpringData,JPA,MongoDB,Solr,Elasticsearch底层逻辑关系
    简论远程通信(RPC,Webservice,RMI,JMS的区别)
    spring/spring boot/spring mvc中用到的注解
    Centos常用命名
    Mybatis详解
    Java成长之路
    Hibernate 与Mybatis之比较
    Struts2 与SpringMVC之比较
    Maven 配置文件详解
  • 原文地址:https://www.cnblogs.com/y15821933792/p/15880685.html
Copyright © 2020-2023  润新知