我正在开发Connect 4的在线版本,我希望能够将2台计算机连接在一起。
我对在TcpClient和Listener类的计算机之间创建网络有一些了解,但据我所知,这些仅适用于连接到同一网络(LAN)的计算机
我希望能够在地球的不同部分与我的妹妹玩连接4,无论我们在哪个局域网上。
这可能吗?
答案 0 :(得分:2)
是
连接LAN上的两台计算机与通过Internet连接相同。唯一的区别是:
如果没有更具体的问题,我无法获得更详细的信息。
答案 1 :(得分:2)
看看Jabber,它是一个即时消息传递协议(由Gtalk使用)。与公共jabber server连接或设置您自己的Jabber主机。 Jabber-net是.NET的库
你可以扩展它以做你想要的所有事情,包括游戏等。
答案 2 :(得分:1)
TcpClient将能够连接到互联网上任何位置的套接字。但是,防火墙或NAT-ed网络可能会妨碍您。您必须确保至少有一个人拥有可公开访问的IP地址和开放端口。
由于您正在撰写此游戏,因此您可以考虑编写一个仅限服务器的应用程序,允许两个人从防火墙后面进行连接。然后,你只需找到一种方法来托管它。
答案 3 :(得分:1)
那是我写的第一个网络游戏。
这可能是可能的。问题是您可能必须在防火墙,路由器等上打开端口,以允许从一台计算机到另一台计算机的传入通信。即使是专业人士,这也是一个问题。
您最好的选择可能是创建一个知名地址的“游戏服务器”。具有域名的廉价网络服务器可以很好地工作。一个应用程序使用Web服务向服务器发送消息,而另一个应用程序每秒检查一次以查找新消息。
答案 4 :(得分:0)
您可以使用.NET客户端和侦听器类连接到位于地球上任何位置的任何IP地址上的任何计算机。问题是你需要知道其他机器的IP地址,它需要接受你的连接。
如果其他计算机位于防火墙后面,事情会变得更加困难。防火墙将阻止未经请求的连接请求 - 包括来自您的计算机的请求与防火墙后面的其他计算机通信。即时消息客户端始终存在这个问题 - 它们通过使连接的每一端与在两个连接之间中继数据的中间服务器通信来解决它。
也就是说,您的计算机可以拨打公共互联网上的计算机,当您通过防火墙建立连接时,您的防火墙将允许您连接的计算机回复您,但您无法直接连接到防火墙后面的另一台机器,除非您事先安排在防火墙上打开特定的TCP / IP端口号。
现在有一些协议标准,如UPnP,可以让您的计算机请求您的本地防火墙为特定连接打开一个端口。如果另一端的计算机也这样做,则可以通过各自的防火墙在两台机器之间建立TCP / IP连接, IF 您可以找到一种通信端口的方式相互之间的数字。您需要将防火墙上打开的端口号发送到另一台计算机,并且需要在防火墙上向您发送开放端口号。因此,您仍然需要某种中介来至少交换此连接信息,以便每一方可以直接连接到另一方。
答案 5 :(得分:0)
为此构建一个网站/应用程序,然后您不必担心连贯性。它也可以跨平台工作,尤其是。如果你避免闪光。
答案 6 :(得分:0)
如果您有网站,可以在网站上调用页面并记录主叫计算机的IP地址。在PHP中,您可以这样做:
$Calling_IP_Address = $_SERVER['REMOTE_ADDR'];
然后,将数据保存到文本文件中。当你想玩其中一个玩家需要调用网页来记录他们的IP地址而另一个玩家读取保存的文本文件以找出连接的位置。
完成工作。