• LPC 网络编程


    LPC有五种不同的通信模式(socket模式)

    ① MUD (面向连接的通信模式)
    可以把除Object以外的所有LPC模型从一个MUD传到另一个MUD
    弊端: 无法传送物件造成了穿越MUD的功能(即需要一个个的发送和接收物件的所有直接、间接继承,
    可扩展性、可兼容性比较差)


    ②STREAM 模式
    也是一种面向对象的通信方式,与MUD不同的在于,他的所有数据都是以字符串形式传递。
    弊端: 由于无法直接发送和接收所有的IPC类型,STREAM则没有那么强大(适用于像Telnet协议,这样不需要发
    送整数,数组这样的数据;只发送各个方向的字符流)的协议;
    其实MUD模式的实现原理就是使用特殊的代码以STREAM模式来发送个接收LPC的数据类型。所以速度要比MUD快,
    内存消耗比MUD少
    它是将字符串分份,一份一份的送,所以在网络延迟的情况下,无法确定组合之后的字符串是否完整


    ③ DATAGRAM模式
    DATAGRAM是无连接的,不需要跟服务器确定连接就可以发送数据,它所传送的数据是一种叫“dataGRAM”的数
    据包,数据包存在寻址信息,可以自觉地从网络一端到另一端
    弊端: 因为没有一个确定的连接,所以数据包可能在网络中丢失,发送方无法得知数据包是否丢失,接收方也
    不知道数据包的存在


    ④TCP和UDP模式
    TCP是能保证数据被正确发送的协议
    如果它发现数据丢失了,尝试重新发送,知道收到为止,确保了数据可以按照顺序到达,不会收到两个同样的
    数据包
    STREAM 是建立TCP连接然后发送数据的
    UDP是一只面向Datagram 的协议,简单来说就是发送没有连接;
    在特殊情况下可以使用UDP,不需要考虑数据是否发送到了的情况下使用UDP,可以有效降低网络负担

  • 相关阅读:
    python并发之concurrent.futures
    Twisted 简介
    Python进程、线程、协程的对比
    协程的优点(Python)
    python concurrent.futures
    gevent 协程 使用
    python高性能代码之多线程优化
    python并发编程之多进程、多线程、异步和协程
    Java——动态代理
    NHibernate之旅(14):探索NHibernate中使用视图
  • 原文地址:https://www.cnblogs.com/kpxy/p/10170585.html
Copyright © 2020-2023  润新知