A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘晓康 中级黑马   /  2012-4-12 16:34  /  11190 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Socket 套接字是两台机器间通信的端点,端口网络应用程序的数字标示。两者都是用于相互通信的标示,请大家说一下,两者的区别与联系。
还有能否具体说一下为什么网络编程就是Socket编程。
希望大家帮忙,谢谢。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

3 个回复

倒序浏览
其实这是两个不相关的概念,简单说,socket是一种支持多种协议的网络编程接口,而通常说的端口是由TCP/IP协议定义的
我觉得可以这样理解:把Socket看作邮递员,把IP地址看作收信人的地址,端口号看作收信人的门牌号。我们的电脑同时可以运行多个程序,也就是有多个socket,那么当电脑收到很多个网络消息的时候怎么区分到底是给哪个程序的信息呢? 就是通过不同的端口号来区分。这就好像一个邮递员拿着一大袋子新建来到一个小区门口,他想准确的把每封信件送到正确的人手中的话,就需要知道收件人的门牌号。端口就是这个作用。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
Socket包含了端口,Socket = (IP地址,端口号)。
Socket是TCP连接的端点。
socket有多种意思。
例如(当使用API时,Socket往往被看成是操作系统的一种抽象,这时,Socket和一个文件描述符是很相似的,并且是应用编程接口API的一部分。Socket由应用程序产生,并指明它将由客户还是服务器来使用。当应用进程创建一个Socket时,要指明该Socket使用的端口号。端口则是应用层服务的的一种代号,它用来标志应用层的进程。端口是一个16 bit的整数。各种服务器使用的端口号都是保留端口号,以便使客户能够找到服务器。)

评分

参与人数 1技术分 +1 收起 理由
蒙武辉 + 1

查看全部评分

回复 使用道具 举报
两台机器可以通过Socket建立网络连接,相互通信,但每台机器上可能会有多个程序在使用网络连接,所以需要通过端口来区别不同程序使用的soket(网络连接),这样数据才能准确的送到指定soket(网络连接),所以每个端口只能被一个soket绑定。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马