V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
chaleaoch
V2EX  ›  Linux

socket 提供的 api 属于库函数还是系统调用?

  •  
  •   chaleaoch · 2020-11-24 23:58:49 +08:00 · 2156 次点击
    这是一个创建于 1459 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果是库函数, 那么都调用了哪些(典型的)系统调用实现对 tcp/ip 的封装.

    socket 可不可以理解成是 TCP/IP 的一种实现?

    还有其他实现吗?
    4 条回复    2020-12-01 11:41:40 +08:00
    chaleaoch
        1
    chaleaoch  
    OP
       2020-11-25 00:03:05 +08:00
    原来属于系统调用. 揭帖.
    qbqbqbqb
        2
    qbqbqbqb  
       2020-11-27 16:57:25 +08:00   ❤️ 1
    其实应该说 TCP/IP 是 socket 的一种实现。另外还有其它类型的 socket,比如 Linux 里有 Unix Domain Socket,一个协议就可以同时提供本地进程之间的数据流( SOCK_STREAM )、数据报( SOCK_DGRAM )和有序可靠数据报( SOCK_SEQPACKET )服务。

    相比之下 TCP/IP 反而是局限性比较强的实现了( TCP/IP 协议族里只有 TCP 协议提供数据流服务,只有 UDP 协议提供数据报服务,两者有不小差别,不能混用,而且不提供有序可靠数据报的服务),奈何它用得广。
    tomychen
        3
    tomychen  
       2020-11-30 16:32:06 +08:00
    SOCKET(2) BSD System Calls Manual SOCKET(2)

    NAME
    socket -- create an endpoint for communication

    SYNOPSIS
    #include <sys/socket.h>

    int
    socket(int domain, int type, int protocol);

    DESCRIPTION



    socket()->__sys_socket()-->sock_create()-->...new_inode()
    tadebao
        4
    tadebao  
       2020-12-01 11:41:40 +08:00
    这头像很 ph
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1087 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 18:54 · PVG 02:54 · LAX 10:54 · JFK 13:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.