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

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/秒。
TCP高并发数据转接服务器(Ntrip Caster)_第1张图片
从上面的介绍,我们可以了解到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服务器的连接完成登入验证
TCP高并发数据转接服务器(Ntrip Caster)_第2张图片
登入成功后,创建线程处理这些连接:
1、如果是Ntrip客户登入,则将客户端的套接字添加到他所要获取数据的源的client套接字列表是,退出线程。
2、如果是Ntrip服务器都登入,则初始化一个属于这个数据源的client套接字列表,然后进入数据传输状态,读取Ntrip服务器的数据,依次将数据,播发到这个数据源client套接字列表的每一个Ntrip客户。

TCP高并发数据转接服务器(Ntrip Caster)_第3张图片
源码下次再更新了哦,博主邮箱[email protected]

你可能感兴趣的:(TCP/IP,服务器,C语言,数据结构)