请教网络通信高手,udp打洞中的服务器可以使用web服务器吗?

juckxu 2014-10-16 03:10:07
目前看到的资料UDP打洞 是在服务器上运行软件来获取客户段的外网IP和端口,这个服务器的程序应该是exe吧,
我现在没有这样的外网服务器,但有web服务器,想通过web服务来做到这个功能,请问可以通过web服务器来实现吗?
请高手指点 ,谢谢!
...全文
481 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
juckxu 2014-10-20
  • 打赏
  • 举报
回复
其实最终结论是:原则上可以使用web服务来实现,前提是Web服务能够开启相应的端口,但是目前虚拟主机大部分端口都被封闭了,是无法使用的。
CCDDzclxy 2014-10-17
  • 打赏
  • 举报
回复
有公网固定ip服务器,干嘛还要打洞?
showjim 2014-10-16
  • 打赏
  • 举报
回复
引用 32 楼 juckxu 的回复:
是的,就算端口可用, 还有问题,没有exe,如何客户端的连接请求。写在web服务,服务调用完就关闭了。
监听服务并不需要exe,哪里开启都行,也不会因为某个web调用而结束,除非web服务关闭了。 不过基于IIS的Web服务有个问题,因为它很不稳定,容易重启。
juckxu 2014-10-16
  • 打赏
  • 举报
回复
引用 30 楼 diaodiaop 的回复:
[quote=引用 27 楼 juckxu 的回复:] 如果单是数据采集,这样做是可以的,还有很多其他的功能, 双方的数据交互比较平凡,是双互的,所以直接通信会更方便
如果是这样 虚拟机肯定不行..他只有网站 而且单个端口. 所以弄个服务器吧 现在云服务器也不是很多钱 找公司弄一个. 然后写个 tcp_server的服务在服务器上 客户端通过tcp来通讯(为什么不用udp因为我不会....) 长连更能看在线状态以及其他东西什么的 还稳定 所以这个帖子的结论就是 "不能"[/quote] 谢谢你的建议,如果实在不行,就采用你的建议了
juckxu 2014-10-16
  • 打赏
  • 举报
回复
引用 28 楼 sbwwkmyd 的回复:
你说你购买的是虚拟主机,就很难说了,要看服务器有没有可用的UDP端口。
是的,就算端口可用, 还有问题,没有exe,如何客户端的连接请求。写在web服务,服务调用完就关闭了。
by_封爱 版主 2014-10-16
  • 打赏
  • 举报
回复
至于如何实现 北京客户端查看上海,广州,深圳,伊朗,美利坚等其他城市的client上报的数据 请另开一帖子
by_封爱 版主 2014-10-16
  • 打赏
  • 举报
回复
引用 27 楼 juckxu 的回复:
如果单是数据采集,这样做是可以的,还有很多其他的功能, 双方的数据交互比较平凡,是双互的,所以直接通信会更方便
如果是这样 虚拟机肯定不行..他只有网站 而且单个端口. 所以弄个服务器吧 现在云服务器也不是很多钱 找公司弄一个. 然后写个 tcp_server的服务在服务器上 客户端通过tcp来通讯(为什么不用udp因为我不会....) 长连更能看在线状态以及其他东西什么的 还稳定 所以这个帖子的结论就是 "不能"
juckxu 2014-10-16
  • 打赏
  • 举报
回复
引用 26 楼 diaodiaop 的回复:
所以拿数据库(服务端)说话比较靠谱写...而且还稳定不受网络限制..而且数据还能保存. 先不说你使用UDP或者TCP能不能实现(如果你只有虚拟机应不可以 webservice好像也不行) 就算实现了 数据还是需要保存的... 所以还不如直接都扔数据库里呢.. 这样为了以后也方便啊 比如N个Client 随便查询数据库就行了.
嗯,如果是单个项目你的方法可行,也是比较好的办法,但现实中的情况是,全国各地很多客户端,而且每个客户端类的数据格式,数据内容都不一样,这样都放服务器数据库,量太大,现实困难,公司承受不了。所以双向通信最简单
showjim 2014-10-16
  • 打赏
  • 举报
回复
你说你购买的是虚拟主机,就很难说了,要看服务器有没有可用的UDP端口。
juckxu 2014-10-16
  • 打赏
  • 举报
回复
引用 24 楼 diaodiaop 的回复:
这个直接把数据上传到服务器 查询不行吗..... 比如 北京数据有变化了 就update table ..... 然后上海的客户端 使用一些技术监听数据库有变化 直接就显示了.....
如果单是数据采集,这样做是可以的,还有很多其他的功能,双方的数据交互比较平凡,是双互的,所以直接通信会更方便
by_封爱 版主 2014-10-16
  • 打赏
  • 举报
回复
所以拿数据库(服务端)说话比较靠谱写...而且还稳定不受网络限制..而且数据还能保存. 先不说你使用UDP或者TCP能不能实现(如果你只有虚拟机应不可以 webservice好像也不行) 就算实现了 数据还是需要保存的... 所以还不如直接都扔数据库里呢.. 这样为了以后也方便啊 比如N个Client 随便查询数据库就行了.
juckxu 2014-10-16
  • 打赏
  • 举报
回复
引用 23 楼 Z65443344 的回复:
既然web服务器是个虚拟机,你做个winform工程直接扔上面跑好啦,不要企图修改web工程 能不能实现先另说,为了这点屁事把web工程搞瘫痪了怎么办
这个web服务器是在万网购买的虚拟主机,是不能运行winform工程的,只能做网站用
by_封爱 版主 2014-10-16
  • 打赏
  • 举报
回复
这个直接把数据上传到服务器 查询不行吗..... 比如 北京数据有变化了 就update table ..... 然后上海的客户端 使用一些技术监听数据库有变化 直接就显示了.....
於黾 2014-10-16
  • 打赏
  • 举报
回复
既然web服务器是个虚拟机,你做个winform工程直接扔上面跑好啦,不要企图修改web工程 能不能实现先另说,为了这点屁事把web工程搞瘫痪了怎么办
juckxu 2014-10-16
  • 打赏
  • 举报
回复
引用 18 楼 diaodiaop 的回复:
是硬件数据采集不?
是的
juckxu 2014-10-16
  • 打赏
  • 举报
回复
引用 19 楼 Z65443344 的回复:
其实网上随便搜一搜NAT穿透,或NAT打洞,能搜出一大把代码来 实际上也并不复杂,就几个步骤 不过要注意的是,打洞用的端口必须和服务器通信用的端口使用同一个端口 否则你与服务器通信用端口500,然后客户端之间通信用端口501,还是会被阻止
是的,你说的很对,网上都是通过专用的服务器来做的,需要在服务器运行exe程序来现实.这个我已经测试过是可行。但需要另外架设一台应用服务器,我是想公司目前已经拥有的这台web服务器能否实现这个功能。 使用应用服务器,UDP打洞我已经测试过了
juckxu 2014-10-16
  • 打赏
  • 举报
回复
首先,感谢各位网友的回复。 可能我没有把问题说清楚。 我补充一下目前的状况: 我的应用的实现应用场景:比如我们公司在北京有一监控项目,客户端为ClientA,公司总部在上海,客户端为ClientB,现在想在上海对北京的数据进行监控,ClientA和ClientB无法直连,因为双方均在路由器下面的内网,所以想通过UDP打洞来实现通信。 web服务器:不是我这个项目的,是其他项目的,只是我想能不能在上面添加功能来实现UDP打洞。
於黾 2014-10-16
  • 打赏
  • 举报
回复
其实网上随便搜一搜NAT穿透,或NAT打洞,能搜出一大把代码来 实际上也并不复杂,就几个步骤 不过要注意的是,打洞用的端口必须和服务器通信用的端口使用同一个端口 否则你与服务器通信用端口500,然后客户端之间通信用端口501,还是会被阻止
by_封爱 版主 2014-10-16
  • 打赏
  • 举报
回复
是硬件数据采集不?
juckxu 2014-10-16
  • 打赏
  • 举报
回复
引用 13 楼 diaodiaop 的回复:
我问你的几个疑问你一个也没有回答我 ... 我问你 你是什么应用 为什么会用到UDP通讯..
我的应用是远程数据采集与监控系统,同时也有类似聊天工具的功能。
加载更多回复(16)

110,566

社区成员

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

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

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