多个客户端如何同时连接到服务器上的一个端口,比如80?(译)
多个客户端如何同时连接到服务器上的一个端口,比如80?(译) 原文: How do multiple clients connect simultaneously to one port, say 80, on a server? [duplicate] 平时我们使用ServerSocket指定了某个端口(例如8080),然后多个客户端连接上socket之后就都用这个8080端口和服务器端通讯。或者http服务器使用80端口也是和多个浏览器进行连接通讯。为什么可以这样呢?操作系统的进程在同个端口的多个连接是如何进行分辨的? 译文: 我们这里讲Socket连接: 1. 端口只是一个数字辨识,不是真正的物理端口; 2. 一个Socket连接的主键(即不同socket之间的区分)是由一个五元组{SRC-IP, SRC-PORT, DEST-IP, DEST-PORT, PROTOCOL}组成,即{源地址,源端口,目标地址,目标端口,协议}组成,那些说四元组不包含协议的说法是错误的。 3. 一个进程可以拥有多个socket连接。 例子一、两个客户端连接在同个服务器的同个端口80,即有两个socket连接: - socket1 {SRC-A, 100, DEST-X,80, TCP} - socket2{SRC-B, 100, DEST-X,80, TCP} 主机A和主机B的地址不同