加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何允许远程连接到我的.net应用程序?

发布时间:2020-12-15 17:26:12 所属栏目:百科 来源:网络整理
导读:我正在编写一个包含桌面和移动应用程序组件的应用程序.桌面应用程序是用c#编写的,我希望能够将其打开以充当移动应用程序的服务器(类似于AirVideo所做的).如何在不要求用户配置防火墙和/或路由器的情况下完成此操作? 理想情况下,我想在桌面应用程序中自行托
我正在编写一个包含桌面和移动应用程序组件的应用程序.桌面应用程序是用c#编写的,我希望能够将其打开以充当移动应用程序的服务器(类似于AirVideo所做的).如何在不要求用户配置防火墙和/或路由器的情况下完成此操作?

理想情况下,我想在桌面应用程序中自行托管一个安静的wcf服务.我已经尝试过了,但防火墙的自动配置不允许远程连接到wcf服务,因为它似乎由系统进程托管.这种行为有解决方法吗?

编辑:我已经通过使用NATUPnP COM库尽可能地解决了路由器问题(http://pietschsoft.com/post/2009/02/05/NET-Framework-Communicate-through-NAT-Router-通UPnP.aspx).我仍然需要知道如何允许通过防火墙远程连接到自托管WCF服务而无需任何手动配置防火墙(我可以通过用户提示在应用程序启动后允许连接).

解决方法

在路由器中设置指定路由到服务器地址的特定端口,
因此,如果您的路由器真正的IP是a.b.c.d,您应该设置与a.b.c.d:port#的所有通信都被路由到您的服务器本地地址. (a.b.c.d:port# – > serverIP)

可以通过路由器配置实现此设置.

在您无法修改路由器设置/防火墙设置的情况下:
这意味着您无法使用端口侦听传入连接,并且只能使用传出连接.要克服这一点,你必须使用具有真实IP地址的第3台服务器,它将充当双方的监听器.典型场景可描述如下:
客户端 – A(桌面)
客户端 – B(智能手机)
服务器端 – S(通信服务器)

> S – >打开端口以侦听传入连接.
> A – >每隔x秒连接到S以检查是否有等待的请求.
> B – >连接到S.(发出等待A的请求)

通过这种方式,S可以作为粘合双方通信的代理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读