如何使用TCP在单个ip上处理来自多个客户端的单个连接

时间:2014-12-21 00:07:26

标签: c++ tcp network-programming server

我想用C ++为我的应用程序开发一个服务器。我对网络概念并不熟悉。这个服务器很简单,我会使用其中一个网络库。我无法找出研究以下问题的必要关键词:

假设在100台不同的计算机上有100个用户,它们共享相同的互联网连接,位于同一台路由器后面。他们都决定打开我的客户端连接到我的服务器。如果要保持连接打开并在同一端口上,如何处理此问题。

2 个答案:

答案 0 :(得分:1)

这种服务器编程并不容易,需要网络技能。你可以看一下this tutorial。它是C和unix,但它显示了你需要使用的功能:

  • 用于网络访问的套接字接口
  • 倾听/接受新的联系
  • 分支新进程来处理不同的客户端(尽管在C ++中你可以探索地寻找对这种任务更有效的多线程)。

答案 1 :(得分:1)

出于服务器的目的,这100个连接是来自同一台计算机,来自同一路由器还是来自完全独立的网络,这没有任何区别。

虽然连接的服务器端将为所有这些端口使用相同的端口,但每个连接将具有客户端IP地址和端口的不同组合。在您描述的情况下,路由器将使用相同的IP地址在同一路由器后面,所以路由器将确保它们都具有不同的客户端端口号。如果您想了解有关一种常用方法的详细信息,可以阅读有关网络地址转换(NAT)的信息。