通过Internet的客户机/服务器聊天应用程序


Client/Server Chat Application through Internet

我尝试了下面的例子,它在我的局域网中工作得很好。

使用异步TCP套接字的聊天应用

现在,有没有可能通过互联网在线办理呢?

注意:我有一个免费的网络托管服务器(PHP)。或者有Internet连接的WindowsServer

我在google上做了一些调查,但是没有找到有用的。

Tcp在互联网上工作得很好-然而,它需要:

  • 客户端可以通过TCP和一些公共IP地址相互访问
  • 所需的端口在所有防火墙上都是打开的(特别是,入站可能被阻塞)

这两个都不是通常将是这种情况。对于互联网的目的,在"聊天"的上下文中,你通常会有一个中央服务器作为集线器,使它很容易满足两个要点。

如果你所说的"internet"实际上是指"web服务器",你可能想看看web套接字(一种在TCP之上分层的双工消息传递协议,最初通过HTTP协商(在协议切换之前),并且在大多数浏览器中都有很好的支持)。

这是可能的,只要您可以在非私有IP上提供侦听端口。

如果你想用PHP做到这一点,你可能想考虑一个由客户端轮询并由数据库支持的服务器,因为长时间运行的PHP进程往往会产生比它们解决的更多的问题。

如果你的Windows服务器有一个外部IP,或者你对路由/防火墙/NAT有足够的控制,你应该能够使用你提供的例子。

要在Internet上使用它,您必须配置路由器将服务器端口重定向到您的计算机。