聊天应用程序 - 无法从客户端连接到服务器

时间:2012-09-29 23:15:08

标签: c++ networking client-server chat

我编写了一个简单的c ++服务器/客户端聊天应用程序。我感兴趣的是能够让多个客户通过服务器(如聊天室)互相交谈。我希望这能够在互联网上工作,而不仅仅是在我的本地网络中工作。

我无法连接到服务器(服务器在家里的台式机上运行,​​通过电线连接到调制解调器)。

服务器具有以下套接字地址设置:

addr.sin_addr.s_addr = inet_addr("127.0.0.1");
addr.sin_port        = htons(1234);
addr.sin_family      = AF_INET;

客户端具有以下套接字地址设置:

addr.sin_addr.s_addr = inet_addr("63.22.45.56");
addr.sin_port        = htons(1234);
addr.sin_family      = AF_INET;

我使用桌面的互联网WAN IP地址供客户端连接。 我在我的路由器设置中为TCP / UDP端口转发了“1234”。它还指向我桌面的本地IP地址(192.168.0.16)

我不确定为什么它无法连接。请随时查看我的客户端和服务器代码。

https://dl.dropbox.com/u/12735155/chat_client.cpp(注意:套接字地址在这里是127.0.0.1,但忽略它。我已将其更新为63.22.45.56)

https://dl.dropbox.com/u/12735155/chat_server.cpp

1 个答案:

答案 0 :(得分:2)

您应在代码中指定192.168.0.16而不是127.0.0.1。

这是因为你不想在localhost上侦听,你想要监听连接到外部世界的IP地址。这就是当您告诉客户端连接到localhost时此代码将起作用的原因,但如果您告诉客户端连接到您的WAN IP并且连接被路由到外部,它将无法工作。