首页 新闻 会员 周边

在基于同一台机器不同进程间通信时,端口没有任何意义?

0
[已解决问题] 解决于 2013-05-21 08:49

在基于同一台机器不同进程间通信时,端口没有任何意义?是这样吗?哪位大虾帮忙解读一下?不理解

< >
分享
最佳答案
0

端口是对于基于TCP的网络进程通信来说的。

如果你是本机,也可以走loopback的TCP,这样也是需要端口的。类似于你用浏览器访问localhost

如果你只想在本机进程间通信有许多种选择,TCP只是一种(对于性能不那么及时和重要的,这比较好),你还可以用比如Shared memory类似的方式来做到进程间通信。

奖励园豆:5
Jerry Chou | 老鸟四级 |园豆:2642 | 2013-05-17 11:20

@会长: 长见识!谢谢~

江湖凶险 | 园豆:152 (初学一级) | 2013-05-17 13:25
其他回答(2)
0

是的,端口是多台电脑通信时标志进程的。同一台机器上进程间通信用不着端口这个概念。

会长 | 园豆:12401 (专家六级) | 2013-05-17 11:06

网络中的主机间通信,才需要端口,比如,一台计算机既是web服务器,有事ftp服务器,当网络中的数据被发送到这台电脑上时,这台电脑会查看数据中标示端口号的标示,如果是80,那就将数据转发给web服务进程;如果是21就转发给ftp进程。详情见套接字编程相关

 

如果没有端口这概念,网络中传递数据就需要知道目的机器中具体的进程,这样一是不安全,二是不方便,因为进程ID可能会变,而像端口就不太会变,用不变的端口对应可变的进程,进程对外不可见,端口对外可见。

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 2013-05-17 11:10

@会长: 解释的非常清晰,谢谢了

支持(0) 反对(0) 江湖凶险 | 园豆:152 (初学一级) | 2013-05-17 13:25
0

一般情况下你感觉不到端口的作用,那是因为软件的多端口是默认的。当你开发web程序时,你就会发现多口还是很重要的。特别是tomcat的端口和oracle的端口若不改有可能争用一个端口而报错

cel | 园豆:380 (菜鸟二级) | 2013-05-17 12:38

有实践才会有更深的感触啊,谢谢你了

支持(0) 反对(0) 江湖凶险 | 园豆:152 (初学一级) | 2013-05-17 13:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册