黑马程序员技术交流社区

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

作者: 刘晓康    时间: 2012-4-12 16:34
标题: Socket与端口的区别
Socket 套接字是两台机器间通信的端点,端口网络应用程序的数字标示。两者都是用于相互通信的标示,请大家说一下,两者的区别与联系。
还有能否具体说一下为什么网络编程就是Socket编程。
希望大家帮忙,谢谢。
作者: 未长法    时间: 2012-4-12 17:04
其实这是两个不相关的概念,简单说,socket是一种支持多种协议的网络编程接口,而通常说的端口是由TCP/IP协议定义的
我觉得可以这样理解:把Socket看作邮递员,把IP地址看作收信人的地址,端口号看作收信人的门牌号。我们的电脑同时可以运行多个程序,也就是有多个socket,那么当电脑收到很多个网络消息的时候怎么区分到底是给哪个程序的信息呢? 就是通过不同的端口号来区分。这就好像一个邮递员拿着一大袋子新建来到一个小区门口,他想准确的把每封信件送到正确的人手中的话,就需要知道收件人的门牌号。端口就是这个作用。
作者: 文密    时间: 2012-4-12 19:08
Socket包含了端口,Socket = (IP地址,端口号)。
Socket是TCP连接的端点。
socket有多种意思。
例如(当使用API时,Socket往往被看成是操作系统的一种抽象,这时,Socket和一个文件描述符是很相似的,并且是应用编程接口API的一部分。Socket由应用程序产生,并指明它将由客户还是服务器来使用。当应用进程创建一个Socket时,要指明该Socket使用的端口号。端口则是应用层服务的的一种代号,它用来标志应用层的进程。端口是一个16 bit的整数。各种服务器使用的端口号都是保留端口号,以便使客户能够找到服务器。)
作者: 罗旭维    时间: 2012-4-13 10:04
两台机器可以通过Socket建立网络连接,相互通信,但每台机器上可能会有多个程序在使用网络连接,所以需要通过端口来区别不同程序使用的soket(网络连接),这样数据才能准确的送到指定soket(网络连接),所以每个端口只能被一个soket绑定。




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