黑马程序员技术交流社区

标题: Socket与端口的区别 [打印本页]

作者: 李龙龙    时间: 2011-11-16 00:14
标题: Socket与端口的区别
Socket 套接字是两台机器间通信的端点,端口网络应用程序的数字标示。两者都是用于相互通信的标示,请大家说一下,两者的区别与联系。
还有能否具体说一下为什么网络编程就是Socket编程。希望大家帮忙,谢谢。
作者: quanhui    时间: 2011-11-16 09:22
我觉得可以这样看:把Socket看作邮递员,把IP地址看作收信人的地址,端口号看作收信人的门牌号。我们的电脑同时可以运行多个程序,也就是有多个socket,那么当电脑收到很多个网络消息的时候怎么区分到底是给哪个程序的信息呢? 就是通过不同的端口号来区分。这就好像一个邮递员拿着一大袋子新建来到一个小区门口,他想准确的把每封信件送到正确的人手中的话,就需要知道收件人的门牌号。端口就是这个作用。
作者: 魏兴发    时间: 2011-11-16 09:35
我是这么理解的:
端口可以看做是水龙头,每个水龙头都有一个编号,也就是端口号;Socket就好比是水管的两个头,当我们希望A水龙头向B水龙头里灌水的话,那就用一根水管的一头连接A水龙头,这根水管 的另一头连接B水龙头,数据传递就可以进行了。
作者: 宋文轩    时间: 2011-11-16 11:01
本帖最后由 宋文轩 于 2011-11-16 11:02 编辑

Socket 就是关联服务端与客户端的一种媒介。类似IO流关联源和目标。 Socket将客户端与服务端关联起来,通过ip,和端口进行区分。 Socket 还可以调用IO流中的读写方法来实现服务端与客户端之间的数据流动。
作者: 高庆亮    时间: 2011-11-16 11:50
沙发说的比较形象!
作者: 白磊    时间: 2013-5-9 22:42
Socket是将IP地址和端口封装到了一块儿。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2