如何通过互联网连接套接字?
我正在制作两个程序;一个“服务器”应用程序(单实例)和一个连接到服务器应用程序的客户端应用程序(多个实例)。将会有连续(但很轻)的数据在服务器应用程序和客户端应用程序之间发送,但客户端应用程序之间没有通信。如何通过互联网连接套接字?
到目前为止,我通过本地网络上的计算机之间打开的套接字连接成功地测试了此操作。这意味着我正在使用cmd> ipconfig中的IP地址。服务器应用程序使用TcpListener/TcpClient。我真的不知道这是最好的连接方式,还是有其他人(?),但这就是我所学到的。
现在需要什么来完成这项工作internet?我假设我会将连接请求发送到外部IP地址,但我是否需要对请求进行更复杂的更改?
我是否需要在路由器中进行一些设置?如果是这样,什么类型?
任何提示,将不胜感激,如你所见,我不太熟悉这一点。
您可以继续使用套接字。为了更方便地与服务器通信,请使用主机名而不是IP地址;这样,服务器可以自由更改IP地址,而无需重新部署客户端。
另一个要考虑的问题是防火墙。您需要确保服务器应用程序的主机允许入站连接到其正在侦听的TCP端口,并且它所在的任何路由器也允许向该端口传入流量。此外,如果客户端有阻止出站流量的防火墙,则客户端可能会遇到连接问题。
您可以使用WCF服务而不是套接字。他们有双工模式和TCP/IP。
然后,您需要一台带有静态IP的计算机,以便您可以通过网络公开您的服务。
看看这篇文章:http://keithelder.net/2008/01/17/exposing-a-wcf-service-with-multiple-bindings-and-endpoints/
你应该承载您的TCP服务器在非军事区http://en.wikipedia.org/wiki/DMZ_(computing)或设置你的路由器从外部做NAT(端口转发)到服务器http://en.wikipedia.org/wiki/Port_forwarding
路由器上的防火墙应该允许连接到所需港口。
如果您不确定自己在设置中做什么,那么您应该阅读路由器手册。
Ehm ..我如何/在哪里设置主机名? – bretddog 2011-04-13 02:12:58
您必须从域名注册商获取域名,然后将其配置为指向您计算机的IP地址。例如,去爸爸出售它们。 – Jacob 2011-04-13 02:20:45
哦,我明白了。我有一些域名,所以也许我可以设置一个子域名。我如何处理客户潜在的防火墙问题?他们是否会收到允许流量的请求,如果可能,我将如何确保在此类警报中显示正确的软件名称? – bretddog 2011-04-13 02:50:25