Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 套接字编程中的接口是什么?_C_Sockets - Fatal编程技术网

C 套接字编程中的接口是什么?

C 套接字编程中的接口是什么?,c,sockets,C,Sockets,这就是我遇到的陈述 这里的接口是什么?是端口号还是别的什么 另一个问题是 接口和通道是同一个还是同一个?据我所知,套接字接口是这样的 对 网络 每个传输协议都提供一组服务。socketapi 提供访问这些服务的抽象 API定义了创建、关闭、读取和写入的函数调用 到/从插座 也像这样 网络接口是计算机与专用或公用网络之间的互连点。网络接口通常是网络接口卡(NIC),但不必具有物理形式。相反,网络接口可以用软件实现 例如,环回接口(对于IPv4为127.0.0.1,对于IPv6为::1)不是一个物理

这就是我遇到的陈述

这里的接口是什么?是端口号还是别的什么

另一个问题是


接口和通道是同一个还是同一个?

据我所知,套接字接口是这样的

  • 对 网络
  • 每个传输协议都提供一组服务。socketapi 提供访问这些服务的抽象
  • API定义了创建、关闭、读取和写入的函数调用 到/从插座
  • 也像这样

    网络接口是计算机与专用或公用网络之间的互连点。网络接口通常是网络接口卡(NIC),但不必具有物理形式。相反,网络接口可以用软件实现


    例如,环回接口
    (对于IPv4为127.0.0.1,对于IPv6为::1)
    不是一个物理设备,而是一个模拟网络接口的软件。环回接口通常用于测试环境

    接口示例:

    • 您可以插入网络电缆的LAN卡
    • wifi适配器
    • (仅限软件)在主系统和虚拟机之间提供虚拟网络的东西
    • (仅限软件)环回适配器,它将您发送给它的所有内容“返回”到您自己的计算机
    等等。如果您正在编写套接字服务器,您可以选择
    客户端连接可能来自何处。
    仅从虚拟机,但外部没有真正的计算机?
    只有wifi,但没有有线局域网?还是全部加在一起?

    通常您的主机(您的计算机)有多个接口。例如,没有网络的(较旧的)计算机将只有IPv4
    环回接口

    如果您将IPv4网络添加并配置到该PC,您将获得另一个接口:
    eth0
    ,或
    net0
    或类似的接口

    当您安装VPN时,它将为您创建另一个接口,因为您没有将数据包发送到不安全的网络,而是将其发送到逻辑VPN接口,该接口在经过一些处理后将数据转发到
    eth0

    每次向网络添加硬件链接(带驱动程序)或创建逻辑网络时,都会创建一个新接口。例如,如果您使用VMVare并创建虚拟机,系统将为您提供在主机、网络和虚拟机之间路由数据所需的一些接口集

    路由IPv4时,为每个接口分配IPv4地址。偶数环回(127.0.0.1)。地址可以是静态的,也可以在系统启动时从服务器获取

    因此,您只能在一个接口上侦听。例如,如果您绑定到环回,您将无法访问任何网络,并且网络主机将无法访问您的套接字(假设路由未中断)。但是,您可以将主机上的多个进程相互连接

    如果您绑定到特定的网络接口,这意味着您希望使用(直接或间接)连接到该网络的系统

    如果您绑定到
    any
    ,对于服务器套接字,这意味着您允许系统接受来自
    anywhere
    的连接,考虑到
    anywhere
    可以ping您。

    接口是操作系统可见的(或多或少真实的)网络接口,位于端口号之下,也就是说。您可以在一个接口上的端口上侦听,同时不在另一个接口上侦听。@Robert“您可以在一个接口上的端口上侦听,同时不在另一个接口上侦听”。我对此不清楚
    "INADDR_ANY binds the socket to all available interfaces."