下边的这段话.
依照我的理解, 每个进程都是一个端口, 比如FTP的21, TELNET的23等, 都是独用的.
但是这段话中说, 多个应用程序可能通过同一个TCP端口传输数据. 让我不解.
Socket协议, 到底是因为什么问题而存在的.
注意断句!“多个”是修饰“应用程序”还是修饰“进程”的。
一般来说同一个电脑上多个“应用程序”是不能同时使用一个端口的。
但是,多个“进程”确是可以复用同一个端口的 -- 很多操作系统允许子进程复用父进程使用的端口。 具体怎么协调由应用程序自身来控制,而为了区分进程自然得有个东西,这就是socket.
举个例子吧,随手找了个服务器,看看里面的apache服务的进程:
# ps -elf | grep httpd | grep -v grep
再看看哪些进程使用了80端口:
# lsof -i tcp:80
可以看到里面有很多httpd
的进程都监听了80端口
所以呢... LZ你应该明白了吧。诸位也都散了吧。
有兴趣的话,可以参考下这个模拟Apache的小程序: https://gist.github.com/Clare...