TCP高并发数据转接服务器(Ntrip Caster)

说到NTRIP Caster, 咱们需要首先链接一下什么是Ntrip协议由于这不是本博客的重点,故只做如下简单介绍,,大家可以通过如下链接对ntrip协议进行详细了解什么是Ntrip 协议

NRTIP主要由三个部分组成。
Ntrip客户(如图client): 这是收到 RTK数据流的那部分组成,指的是带有RTK流动站的测量员。NtripClient将使用 NtripCaster合适的IP地址通过互联网连接到NtripCaster。

Ntrip服务器(如图source): 这部分用于从 GPS参考站到NtripCaster传输RTK数据。 NtripServer (硬件)通常是一台PC机(同GPS传感器连接)或者它就是一台直接连到互联网的接收机。有时您可能也听到过术语 Ntrip [来源] –这指的是本身(GPS传感器)能够产生 RTK数据的硬件。与 NtripClient一样,NtripServer将使用NtripCaster合适的 IP地址通过互联网连接到 NtripCaster 。

Ntrip处理中心(如图Ntrip Caster):这是一个互联网服务器,它将进出NtripServer和[客户]的不同数据流进行处理。可以将Ntrip网络服务器当作一个“电话程控机”,它将 NtripClient连接到需要的数据流。它对进出参考站端和客户端的不同数据流进行处理,物理上是一个服务器组,承担着参考站和用户间通讯的桥梁作用。它是基于因特网(HTTP)的服务,控制不同数据在控制中心服务器的进出。从参考站端接收数据流并处理,同时设置数据流所属参考站的代码、密码、账号等。从客户端收到请求消息,看客户端是否已注册并通过认证,可以收发RTK数据流。另外,控制中心还具有与Internet临近系统(或参考站网)的联网能力,包括:支持Ntrip,实现系统数据联网和服务联网,支持服务注册和服务漫游功能,可增加参考站数量,满足扩充要求等。一般地,控制中心支持三种数据的传输率:GNSS差分数据约为0.5KB/秒,RTK差分数据约为5KB/秒,原始导航数据约5KB/秒。

从上面的介绍,我们可以了解到Ntrip Caster是一种TCP高并发数据转接服务器,那这个数据转接服务器是如何实现的呢?下面是本人设计的TCP高并发数据转接服务器(Ntrip Caster)实现。不论是Ntrip客户,还是Ntrip服务器,其实他们都是TCP client,Ntrip Caster是Ntrip客户的TCP server,也是Ntrip服务器的TCP server。Ntrip客户、Ntrip服务器都需要主打连接Ntrip Caster,故本博客设计的Ntrip Caster是基于多线程的服务器框架进行设计的,如下图是主线程,主线程的主要功能是初始化好TCP server的环境,并等待Ntrip客户、Ntrip服务器的连接完成登入验证

登入成功后,创建线程处理这些连接:
1、如果是Ntrip客户登入,则将客户端的套接字添加到他所要获取数据的源的client套接字列表是,退出线程。
2、如果是Ntrip服务器都登入,则初始化一个属于这个数据源的client套接字列表,然后进入数据传输状态,读取Ntrip服务器的数据,依次将数据,播发到这个数据源client套接字列表的每一个Ntrip客户。


源码下次再更新了哦,博主邮箱zengsjplus@qq.com

TCP高并发数据转接服务器(Ntrip Caster)相关推荐

  1. 一个简单的高并发的回应服务器(5万并发)

    一个简单的高并发的回应服务器,主要是使用boost的库! 自己测试过可以达到5万个并发! 程序的下载地址:http://download.csdn.net/detail/guanyijun123/83 ...

  2. 猿创征文 | 微服务 Spring Boot 整合Redis 实战开发解决高并发数据缓存

    文章目录 一.什么是 缓存? ⛅为什么用缓存? ⚡如何使用缓存 二.实现一个商家缓存 ⌛环境搭建 ♨️核心源码 ✅测试接口 三.采用 微服务 Spring Boot 注解开启缓存 ✂️@CacheEn ...

  3. 处理大客流量高并发数据通讯_云如何处理高流量网站?

    处理大客流量高并发数据通讯 It is often seen that one of the main benefits of the cloud is its perceived ability t ...

  4. Spring Boot实战解决高并发数据入库: Redis 缓存+MySQL 批量入库

    前言 最近在做阅读类的业务,需要记录用户的PV,UV: 项目状况:前期尝试业务阶段: 特点: 快速实现(不需要做太重,满足初期推广运营即可) 快速投入市场去运营 收集用户的原始数据,三要素: 谁 在什 ...

  5. Spring Cloud Alibaba 分布式微服务高并发数据平台化(中台)思想+多租户saas企业开发架构技术选型和设计方案

    基于Spring Cloud Alibaba 分布式微服务高并发数据平台化(中台)思想+多租户saas设计的企业开发架构,支持源码二次开发.支持其他业务系统集成.集中式应用权限管理.支持拓展其他任意子 ...

  6. 27.Linux网络编程socket变成 tcp 高并发 线程池 udp

    好,咱们开始上课了,从今天开始咱们连续讲 8 天的,网络编程这个还是在linux环境下去讲,咱们先看一下咱们这 8 天都讲什么东西,跟大家一块来梳理一下,你先有个大概的印象,这些你也不要记,那么网络编 ...

  7. 如何打造高效的多任务、高并发的网络服务器系统?

    同一个功能的软件,不同的团队,不同工程师去实现,肯定是千差万别,甚至从根本上完全不同.所以软件开发在未来很长时间内仍然是一项工匠的手工劳动,尤其像多任务,高并发,偏底层这种对实现技巧比较高的系统,这种 ...

  8. redis高并发数据错乱_redis总结:1T以上海量数据+10万以上QPS高并发+99.99%高可用...

    来源:https://blog.csdn.net/qq_34246646/article/details/104402510 redis作用 topic:高并发.亿级流量.高性能.海量数据的场景,电商 ...

  9. 哪个服务器支持高并发,IIS Web服务器支持高并发设置方法详解

    这篇文章主要介绍了IIS Web服务器如何支持高并发,详细设置方法在下面,大家参考使用吧 适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows ...

最新文章

  1. python 命名空间冲突_通过修改命名空间绕过pb冲突
  2. Linux中使用gcp拷贝报错:dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NotSupported:
  3. ITK:从测量列表创建直方图
  4. SuperMap注册流程记录
  5. rx.observable_使用Java 8 CompletableFuture和Rx-Java Observable
  6. 酒店管理与计算机技术结合,(定稿)某酒店内部管理系统的开发与应用(完整版)...
  7. 带有进度报告的Angular 9/8多文件上传服务
  8. Java实现非对称加密算法-RSA加解密
  9. 順豐突然爆出一季度巨額虧損9億到11億
  10. C++冒泡排序(正宗版)
  11. 加密php大马,webshell加密-加密你的大马
  12. clion连接mysql,使用 CLion 调试 mysql 源码
  13. js小游戏-别踩白块儿
  14. 微型计算机外部设备接口,第五章 微型计算机输入输出接口
  15. 一篇文让你看懂NB-IoT、LoRa、eMTC、Sigfox及ZigBee的应用场景【转】
  16. 威眼(WeaView)企业计算机监管系统如何安装客户端和日常使用
  17. CS:APP 计算机系统 课程大作业
  18. vue.js鼠标移入变换样式,鼠标移出去除样式(active)实现方法
  19. 爬虫-解析库的使用-Xpath
  20. javascript完成:使用split()和join()实现对输入文字设置背景颜色

热门文章

  1. .NET和Java发展前景哪个好?
  2. shell 文件处理 并集 交集 差集
  3. Int里-128到127的学问
  4. 网络拓扑测绘之海底光缆拓扑
  5. Linux写文件断电保存,硬盘写到一半时断电,文件系统里会发生什么?
  6. 《the culture code》
  7. python代码少的作品_原创 8行python代码展示程序员从入门到大神(或跑路)的全部状态...
  8. 如何保障测试用例的覆盖率
  9. React.js实现原生js拖拽效果及思考
  10. 前端跨域请求原理及实践(加qq群:342430957)