新的套接字编程,需要帮助了解如何连接

时间:2010-02-13 23:38:35

标签: c++ sockets

我有一个C ++程序侦听端口2222上的传入套接字连接。 当我单击按钮时,我有一个Adobe AIR / Flex应用程序尝试连接它。

当我通过Intranet连接到我的套接字时,我的C ++程序会听到并接受传入的套接字连接并且Everything正常工作:

var Sock:Socket=new Socket("192.168.1.100",2222);

但是当我尝试使用我的真实IP连接时,我收到错误#2031:

var Sock:Socket=new Socket("76.18.24.118",2222);

这两个程序都在我的笔记本电脑上运行。我在路由器后面,但已配置该端口转发路由器,以便端口2222映射到我的笔记本电脑。

我想念的是什么?我对此非常陌生,所以也许我错过了一些对你聪明的事情。

2 个答案:

答案 0 :(得分:2)

错误代码的含义是什么(请参阅socket的文档) 你确定接收服务器进程还活着吗?

传统的起点是Beej's guide

答案 1 :(得分:1)

端口转发并不意味着您可以使用外部IP地址,您的笔记本电脑仍然在私有192.168网络上。这意味着当有人试图在78.18.24.118:2222连接时,路由器将IP地址转换为192.168.1.100:2222。这有效地允许您在网络中运行服务器,但允许外部客户端连接到您。

查看DNAT以获取更多信息。