TCP数据包转发,封装问题

楠轩2009 2019-04-03 11:40:38
我想实现一个功能,就是写个socket服务端,让mssql管理器连接我socket服务端,socket服务端拿到连接数据后,给报文头尾增加我自己定义内容,然后再发到其它socket服务端,这个服务端把报文头尾去掉后又,直接连接mssql1433端口发送给它,技术上可行吗?

btw:业务需求是,mssql客户端想连接远程mssql服务器,两端都再不同城市没有固定ip的内网,想通过云主机(有固定ip)中转通信。
...全文
250 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
楠轩2009 2019-07-17
  • 打赏
  • 举报
回复
功能就是把一个电脑的端口,映射到另外一台电脑的某个端口,是支持跨互联网的映射,比如3389端口映射过去,就可以远程桌面。
楠轩2009 2019-07-17
  • 打赏
  • 举报
回复
功能已实现: LinkPort 是一款跨互联网 两个不同内网电脑端口之间映射的一个工具,无需公网IP,比如:把北京公司内网一台数据库1433端口,映射到上海分公司内网一台电脑9999端口上,在上海分公司内网访问9999端口就相当于访问北京公司内网1433端口。也可以把公司应用(比如网站)端口,映射到云上,云可以配置极低,公司应用那台电脑配置高就可以,相当于反向代理,速度就很快。 demo地址:http://thanapi.xaheruan.cn/LinkPort0.1.2.195.rar
  • 打赏
  • 举报
回复
面向业务逻辑服务层编程开发,你面向数据库(1433)干什么呢?你直接用你的点到点的客户端发送业务消息,甚至是毫无业务结构的 sql 语句,就行了。
楠轩2009 2019-04-09
  • 打赏
  • 举报
回复
内网A: 一个socketA1客户端负责和服务器通信,一个socket服务端负责监听1433端口,当mssql管理器连接1433端口时候,socket服务端获取这个mssql的socket客户端A2连接获取数据,然后通过SocketA客户端发给服务器。 外网真实ip服务S:内网A数据包直接转发内网B。 内网B:先开启一个socket客户端B1连接到服务器S,当收到服务器S转发内网A数据后,在开一个socket客户端B2连接到mssql服务器(即1433端口)给他发送转发的内网A数据,B2接受到的数据在通过B1发给服务器S,S再转发给内网socketA2。 不知道这样行不,我写了这个程序,发几次就乱了,不知道是思路有问题还是程序有问题。
  • 打赏
  • 举报
回复
这就好像你使用邻居家的熟悉的跑腿服务,跟使用一个美国的穷人通过互联网“承诺”给你提供的跑腿服务,哪一个最实用自己会很清楚。
stherix 2019-04-03
  • 打赏
  • 举报
回复
没必要搞这么复杂,因为这样的轮子早有啦 在你的公网服务器上部署一个ngrok反向代理服务就可以了 然后在mssql服务器上做下配置 就可以通过公网ip来访问内网的数据库了
  • 打赏
  • 举报
回复
比如说我们可能有10台海报打印机,或者30台老式 android 手机用来发短信,或者其它设备,锁在家里(公司里)单独房间以防公安来查。那么公网上的云服务器(可以试集群)只是负责承接业务,当有印刷工作或者群发短信工作的时候,那么消息推送给局域网端的设备计算机了。这是很普通的。 要推送消息,自然就需要内网的机器跟外网的机器双向长连接。
  • 打赏
  • 举报
回复
长连接点对点通讯本来就是这样的,通过服务器中转。 如果你的客户如 skype 或者微信那样有几十亿,你的服务器可以仅仅作为登录和“协调”的 master 服务器,然后拿用户的客户端当作“肉鸡”作为服务器。
hanghangz 2019-04-03
  • 打赏
  • 举报
回复
反正感觉你这个方式怪怪的
楠轩2009 2019-04-03
  • 打赏
  • 举报
回复
谢谢各位大佬的解答,反向代理这个我知道,配置一下,访问公网ip某个端口,就可以访问内网1433,但是如果有多个比如100个数据库,公网ip端口要再开100个端口来反向代理内网,服务端占用100个端口为其反向代理做为服务,而我云只能开1-2个端口,而且需要专业人员配置,我的想法是用账号,所以要封装mssql通信的报文加头,我头里存储的就是账号信息, mssql客户端和服务端通信,是动态的。只要再后台配置文件配置好就行。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧