在家庭网络上的两台机器之间通过插座连接?

时间:2012-05-31 20:40:18

标签: c winapi sockets winsock

我是套接字的新手,我的问题是:

假设我有一台家用电脑而我的朋友有 一台家用电脑。 (我通过gprs / edge modem连接到网络;我的朋友 通过电线连接 - 我不确定这是否重要。

我可以在whatismyip.com页面上检查我的IP;他 也可以为他做。

如果我写了一些简单的socket(WinSock)代码和 把这些ip放在这样的代码中,是否足以在我们的机器之间进行一些网络通信, 它会起作用吗?

在WinSock示例代码中放置此类ip的位置?

编辑:一些解释

我正在使用c / winapi 我在自己的机器上编译并测试了一些本地示例 它似乎工作,但我不确定它是否适用于两个 远程计算机,如果我将提供两个IP(来自 whatismyip.com页面。)

它肯定会起作用,也可能不起作用?需要我只提供 在某些套接字地址字段中的那些IP还是我需要做更多的事情?

EDIT2:

我需要在两个家之间做一些简单的winapi游戏 电脑(通过winsock连接互联网) 我可以关闭防火墙,它不会工作吗? 如何使它工作?

3 个答案:

答案 0 :(得分:2)

您需要阅读大多数家庭路由器所做的Network Address Translation。然后将port-forwarding规则添加到路由器/调制解调器防火墙。

答案 1 :(得分:2)

你有几个选择。一种是设置静态端口转发 - 即配置路由器,使端口X转到内部IP地址a.b.c.d.这通常要求您使用静态IP地址设置计算机。

大多数人通常更愿意避免这种情况 - 这是可能的,但不一定是微不足道的。一些可用的工具/协议是STUNTURNICEUPnP。虽然您可以直接使用UPnP,但您可能会发现通过像libupnp这样的库来处理它会更容易一些。

答案 2 :(得分:0)

首先,您需要确定要使用的协议 TCP还是UDP?
如果您想要TCP / IP通信,则需要一台计算机作为服务器(监听),并将一台计算机作为客户端
你用C ++编程吗?
以下是服务器端code的示例: