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,可以有效降低网络负担
LPC 网络编程的更多相关文章
- 猫哥网络编程系列:HTTP PEM 万能调试法
注:本文内容较长且细节较多,建议先收藏再阅读,原文将在 Github 上维护与更新. 在 HTTP 接口开发与调试过程中,我们经常遇到以下类似的问题: 为什么本地环境接口可以调用成功,但放到手机上就跑 ...
- python select网络编程详细介绍
刚看了反应堆模式的原理,特意复习了socket编程,本文主要介绍python的基本socket使用和select使用,主要用于了解socket通信过程 一.socket模块 socket - Low- ...
- Linux Socket 网络编程
Linux下的网络编程指的是socket套接字编程,入门比较简单.在学校里学过一些皮毛,平时就是自学玩,没有见识过真正的socket编程大程序,比较遗憾.总感觉每次看的时候都有收获,但是每次看完了之后 ...
- 猫哥网络编程系列:详解 BAT 面试题
从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...
- 浅谈C#网络编程(一)
阅读目录: 基础 Socket编程 多线程并发 阻塞式同步IO 基础 在现今软件开发中,网络编程是非常重要的一部分,本文简要介绍下网络编程的概念和实践. Socket是一种网络编程接口,它是对传输层T ...
- C++11网络编程
Handy是一个简洁优雅的C++11网络库,适用于linux与Mac平台.十行代码即可完成一个完整的网络服务器. 下面是echo服务器的代码: #include <handy/handy.h&g ...
- Java - 网络编程
Java的网络编程学习,关于计算机基础的学习参考:计算机网络基础学习 - sqh. 参考:
- Linux网络编程-IO复用技术
IO复用是Linux中的IO模型之一,IO复用就是进程预先告诉内核需要监视的IO条件,使得内核一旦发现进程指定的一个或多个IO条件就绪,就通过进程进程处理,从而不会在单个IO上阻塞了.Linux中,提 ...
- Python Socket 网络编程
Socket 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ ...
随机推荐
- import模块/包--软件开发规范
一. 模块 模块:就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. import加载的模块分为四个通用类别: 1 使用python编写的代码(.py文件) 2 已被编译 ...
- 查看变更(git diff)
git diff命令 如果想要知道变更的具体内容,可以使用git diff命令.它被用来解决两个问题: 哪些变更还没有被暂存? 那些已暂存的变更正待提价? git diff在git status基础上 ...
- 中文 Tex
\documentclass{article} \usepackage{ctex} \begin{document} 中文English \[E = m c^2\] \end{document} \d ...
- redhat7.4切换yum源为免费源
1.redhat是Linux系统中付费的企业版,虽然安装什么是免费的,但是需要注册. 如果你有注册码,暂请出门左拐(我没有注册码,所以我也不会注册,不用往下看了). Linux系统收费版:RedHat ...
- 开启Apache的server status监测
从httpd.conf 打开 status_module#LoadModule status_module modules/mod_status.so修改成LoadModule status_modu ...
- 基于YOLOv3和Qt5的车辆行人检测(C++版本)
概述 YOLOv3: 车辆行人检测算法 GitHub Qt5: 制作简单的GUI OpenCV:主要用于putText.drawRec等 Step YOLOv3检测结果 Fig 1. input im ...
- Linux查看日志工具
⒈journalctl journalctl是Centos7才有的工具用于systemd统一管理所有unit的启动日志,只用一个journalctl命令就可以查看所有的日志(包括内核日志和应用日志), ...
- referrer policy
我们知道,在页面引入图片.JS 等资源,或者从一个页面跳到另一个页面,都会产生新的 HTTP 请求,浏览器一般都会给这些请求头加上表示来源的 Referrer 字段.Referrer 在分析用户来源时 ...
- Visual Studio 2013 SDK 扩展之简介
Release Notes:[发行说明]启动记事本的扩展,以管理员身份运行验证通过. Getting Started Guide:[入门]使用[Ctrl + 1]更快捷打开记事本 More Info ...
- 【原创】用python连接thrift Server 去执行sql的问题总汇
场景:python和现有产品的结合和应用——python的前瞻性调研 环境:centos7 0.首先确保安装了python和pyhive,下面是连接代码: #!/usr/bin/env python ...