那么服务器如何发现

worktile 其他 17

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    服务器的发现是指在网络中找到其他服务器或设备的过程。服务器的发现通常是为了建立网络连接、共享资源或进行通信而进行的。下面是一些常见的服务器发现方法:

    1. 广播:
      广播是一种服务器发现的常用方法。在一些特定的网络协议中,设备可以发送广播消息到整个网络中,其他设备可以接收并回应这些消息。通过广播,服务器可以向网络中的其他设备宣布自己的存在,从而实现服务器发现。

    2. 多播:
      多播是一种向多个设备发送消息的方法。与广播不同,多播只向特定的设备组发送消息。服务器可以通过发送多播消息来告知特定的设备组自己的存在。只有加入了该设备组的设备才能接收到这些消息,从而进行服务器发现。

    3. 域名系统(DNS):
      域名系统是一种将域名与 IP 地址相互映射的系统。当客户端向服务器发送网络请求时,会通过域名系统将域名解析为服务器的 IP 地址,从而建立连接。服务器可以通过在域名系统中注册自己的域名和 IP 地址来实现服务器发现。

    4. 服务发现协议(SDP):
      服务发现协议是一种专门用于服务器发现的协议。它可以帮助服务器在网络中注册自己的服务并提供相关的元数据,如 IP 地址、端口号等。其他设备可以通过查询服务发现协议来获取服务器的信息,从而进行服务器发现。

    5. 配置文件和手动配置:
      有些情况下,服务器发现可能是通过手动配置或者读取配置文件来实现的。管理员可以在配置文件中指定其他服务器的 IP 地址或域名,从而使服务器能够找到其他设备。这种方法在小型网络中比较常见。

    总之,服务器的发现是通过广播、多播、域名系统、服务发现协议、配置文件等方法来实现的。不同的场景和需求可能适用不同的方法,因此在实际应用中需要根据具体情况选择合适的服务器发现方法。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    服务器发现是指在网络中找到并识别服务器的过程。服务器发现可以通过多种方式进行,以下是几种常见的服务器发现方法。

    1. 广播:服务器可以通过在网络中广播它们的存在来进行发现。其他设备接收到广播信息后,可以识别并连接到服务器。这种方法适用于小型局域网环境,但在大型网络中使用可能会导致网络堵塞和性能问题。

    2. DHCP:动态主机配置协议(DHCP)可以用于自动分配网络中的IP地址。服务器可以通过向DHCP服务器发送请求来获取一个可用的IP地址。其他设备可以通过DHCP服务器的记录来发现服务器的存在。

    3. DNS:域名系统(DNS)是互联网中用于将域名解析为IP地址的系统。服务器可以注册一个域名,并将其与其IP地址关联。其他设备可以通过DNS查询来发现服务器的存在。

    4. SSDP:简单服务发现协议(SSDP)是用于发现网络服务的协议。服务器可以通过在网络中发送SSDP广播消息来宣布其存在。其他设备可以通过监听SSDP消息来发现服务器。

    5. 扫描:网络管理员可以使用网络扫描工具来扫描整个网络,以查找并识别所有连接到网络的服务器。这种方法需要管理员有权限和控制权来执行扫描操作。

    除了以上提到的方法,还有其他一些高级的服务器发现技术可以使用,如使用SNMP(简单网络管理协议)来监控网络设备并收集信息,或使用LDAP(轻量级目录访问协议)来搜索和识别服务器。

    总的来说,服务器发现是通过各种网络协议和技术来寻找和识别服务器的过程。选择合适的服务器发现方法取决于网络规模、安全性要求和管理员的配置和管理能力。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Client RpcProxyHelper

    1. 如何根据客户端对象实例,确定与对象实例通信的服务代理类。
      在.Net Remoting实现中的一个类是Client RpcProxyHelper。
      Client RpcProxyHelper对象由一个或多个由标注实现了IClientChannelSinkProvider的客户端通道提供者实例引用。
      这个通道提供者可以生成适用于客户端的一组通道接收器链。
      每个通道接收器链用于处理传出和传入的远程方法调用、事件、异步消息和定期调度操作。
      使用ServerTcpChannel指定.TCP传输通道作为客户端通道接收链。
      一些用于创建该通道接收链的属性是已知的要被指定:IP、端口。
      ClientTcpChannelChannelData在该传入通信链路上发送和接收消息。

    2. 使用ChannelServices类将IP和端口注册到通道,以便在请求服务器调用方法时进行使用。
      ClientTcpChannel通道的特性是:
      注册类型通过ClientChannelSinkProvider的GetType()方法。
      调用GetType()方法结果存储为TcpClientChannel代理对象。
      TcpClientChannel本地的ChannelData设置为ClientConfigurationEntry集合的一个通道。
      此通道由ConfigHandler设置为void LoadChannels();

    3. TcpClientChannel的继承ContextBoundObject特性定义了ServerTcpTransportSink对象,在调用流程的请求流水线上完成:
      在调用流程运行时可能受到TCP连接、函数调用运行和已请求的传输连接流量的影响;
      ServerChannelSinkStore 类用于处理运行类型的传输连接。设置一个绑定SPIs(string channelId,string tcpEndpoint),并附带一个请求类型。
      泛型继承了CreateServer -与调用流水线类,但需PlaceholderCreate,确认匿名方法的标记已经被规范化。设置类型名称。
      同事继承了GetChanenlsForAddress用于地址解析。通过它注册地址以及ServerTransportSink。

    4. 通信的流程是:
      客户端发生信息,ClientTcpChannel通道上存储了请求的函数调用。
      问题是通道链和服务器处理的细节:返回按所需的密钥匹配编号-对称体系(可以是任意的)。

    TcpServerChannel类型用于存储来自ClientTcpChannel通道的请求。

    5.
    当客户端发送请求时,与上述通道参数对应的函数调用的绑定通道编号的socket信息:GetAddressData(Byte[] buff).

    1. TcpServerChannel的实现在ClientProxy中是ChannelData的一个形式,在实例化对象的过程中,TCP主机(server)是ChannelInformation。
      通过ServerChannelSinkStack这层接口,发送和处理连接请求。

    2. 发送请求的流程:
      ChannelSender使用指定好的IP、Port和ChannelId信息模块发送数据。

    TCP主机在方法调用中通过通道调用节点获取不同的代理对象。

    至此,服务器如何发现一个TCP主机与指定对象实例进行通信分析过程结束。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部