2009-12-16 43 views
2

我正在使用的当前应用程序是Client-Server C#应用程序,并且在网络上运行得非常好。现在我想,如果它可以通过互联网运行。问题是如何做到这一点?我如何在我的电脑上启动服务器,并在什么情况下让每个客户端通过互联网连接?我需要什么软件来做到这一点?如何使C#客户端 - 服务器通过互联网运行?

每个意见/建议都可能非常有用。

谢谢。

回答

2

告诉他使用Soap/Tcp/Wcf是毫无意义的。他已经在他的本地网络上运行

您可以设置您的家庭网络以允许来自互联网的连接。大多数路由器都支持Dynamic DNS services。每当我离开家时,我都会使用SSH连接到我的家庭计算机。

这将需要在家中设置路由器以转发相应的端口,并将其设置为与动态DNS服务配合使用,但之后您可以使用您设置的域名从Internet上的任何位置访问它DDNS服务,一切都应该顺利完成。

+0

即使服务器是C#应用程序(Windows窗体应用程序),它也能工作吗? – Emanuel 2009-12-16 20:58:02

+0

它没有任何区别。您只需通过网络(不管您是LAN还是网络)发送数据包(与您的编程语言或开发环境无关)。 – Rushyo 2009-12-16 21:11:35

+0

很好的答案,你提到了家庭网络的动态IP问题。我通过在浏览器中转到默认网关IP(从命令窗口中的ipconfig获得),转到** Firewall **,然后** NAT/Gaming **,然后在AT&T Motorola调制解调器上工作我用我的端口和我的协议(在我的情况下只是TCP)添加了“自定义服务”,然后将新的“服务”添加为指向我的PC的“托管应用程序”。我在端口'0.0.0.0'上运行我的服务器,以便获取内部和外部IP。我现在买不起动态DNS,但至少我可以通过IP实现。客户指向公共IP – toddmo 2015-04-02 17:18:10

4

你可以使用WCF服务的服务器,让客户端应用程序使用TCP或肥皂或连接到它..

大的信息在这里p&p app architecture这里MS WCF

为了让互联网的连接休息到您的服务器在IIS中设置一个网站并注册一个域名,将其指向您的服务器的IP。还要更改host文件以处理请求。

2

只要您所在的网络允许传入连接到您的IP地址,您应该没问题。虽然请注意,大多数人的家庭网络设置涉及到一个坐在公共IP地址前面的路由器,而您的所有计算机/笔记本电脑/游戏控制台只有该网络的IP地址。这意味着您可能需要设置路由器将一个或两个端口转发到运行服务器的计算机。

0

在这种情况下,你接下来要做的事情需要做的是两种:从网络托管公司

  • 购买服务器空间(考虑的Windows Azure)
  • 暴露在一个静态IP您的计算机,并有客户端连接到那个。

无论哪种方式,我会建议购买一个域,并指向它的IP。这样,如果/当您承载它的位置发生变化,您可以提交DNS更改,并且域将指向新的位置。

一旦你有一个公开曝光的系统,建立一个Web服务来响应客户端请求。

相关问题