【问题标题】:Chat Application - Trouble Connecting to Server from Client聊天应用程序 - 从客户端连接到服务器时出现问题
【发布时间】:2012-09-29 23:15:07
【问题描述】:

我编写了一个简单的 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(注意:这里的socket地址是127.0.0.1,忽略,我已经更新到63.22.45.56了)

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

【问题讨论】:

    标签: c++ networking client-server chat


    【解决方案1】:

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

    这是因为你不想在 localhost 上监听,你想在连接到外界的 IP 地址上监听。这就是为什么当你告诉客户端连接到 localhost 时这段代码可以工作,但如果你告诉你的客户端连接到你的 WAN IP 并且连接被路由到外面,它就不会工作。

    【讨论】:

      猜你喜欢
      • 2020-03-25
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      相关资源
      最近更新 更多