socket编程到底是什么

Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。Socket有以下定义:1、IP地址;2、端口号;3、连接;4、半相关;5、全相关。IP地址是指即依照TCP/IP协议分配给本地主机的网络地址。

socket编程到底是什么-Worktile社区

Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。

几个定义:

1、IP地址

即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。

2、端口号

用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通讯前必须要分配一个没有被访问的端口号。

3、连接

指两个进程间的通讯链路。

4、半相关

网络中用一个三元组可以在全局少数标志一个进程:(协议,本地地址,本地端口号)这样一个三元组,叫做一个半相关,它指定连接的每半部分。

5、全相关

一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。也就是说,不可能通信的一端用TCP协议,而另一端用UDP协议。因此一个完整的网间通信需要一个五元组来标识:(协议,本地地址,本地端口号,远地地址,远地端口号)这样一个五元组,叫做一个相关(association),即两个协议相同的半相关才能组合成一个合适的相关,或完全指定组成一连接。客户/服务器模式在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器(Client/Server,C/S)模式,即客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。

延伸阅读:

Socket的主要类型

1、流套接字(SOCK_STREAM)

流套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复送,并按顺序接收。流套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议。

2、数据报套接字(SOCK_DGRAM)

数据报套接字提供一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP( User DatagramProtocol)协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理。

3、原始套接字(SOCK_RAW)

原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。因此,如果要访问其他协议发送的数据必须使用原始套接。

文章标题:socket编程到底是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/35340

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年1月12日 上午2:08
下一篇 2023年1月12日 上午2:12

相关推荐

  • 编程学了有什么用

    在当前技术驱动的世界中,编程的用途既广泛又重要。首先,它是实现技术创新的基本工具,允许我们开发新的软件、应用程序和系统来解决日常问题。其次,编程能力增强了解决问题的能力,这对于个人发展和职业进步非常重要。此外,它还提供了理解和利用新兴技术的途径,如人工智能和物联网。再者,编程能力有助于提升个人创业的…

    2024年4月25日
    800
  • oa系统数字化

    标题:OA系统数字化转型的关键要素 在采纳数字化办公自动化(OA)系统的过程中,确保以下元素得到妥善管理和实施至关重要:1、用户友好性、2、无缝集成能力、3、强大的数据安全性、4、高度的可定制性、5、卓越的移动支持、6、智能自动化功能。这些要素构成了数字化OA系统中心论点的基石。尤其是高度的可定制性…

    2024年1月12日
    21700
  • Java中的数据备份和恢复策略是什么

    Java中实施数据备份与恢复涉及1、数据备份工具与库的应用;2、数据库级别的备份恢复;3、文件系统的同步备份;4、应用层手动数据备份机制;5、备份数据加密与安全;6、备份策略的定期测试。特别是数据备份工具与库的应用为核心,因为这决定了数据备份的效率和准确性。 详细阐述数据备份工具与库的应用是至关重要…

    2024年1月8日
    26500
  • 项目部如何管理公司经营

    项目部在管理公司经营方面扮演着至关重要的角色,主要通过制定清晰的项目目标、实施有效的沟通机制、进行财务管理、强化团队建设、利用技术和创新来实现。这些策略不仅有助于推动项目顺利进行,还能促进组织整体的业绩增长。其中,制定清晰的项目目标是基础且关键的一步。明确的目标有助于指导项目团队的工作方向,确保所有…

    2024年4月10日
    5600
  • 一个软件是如何开发出来的

    软件开发包含以下阶段:一、软件开发的可行性和规划阶段;二、分析客户需求阶段;三、软件的设计阶段;四、实现阶段;五、测试阶段;六、操作以及维护阶段。软件开发方案第一要做的工作就是对其可行性进行落实,要弄清楚开发这套软件的目标以及整体的要求。 一、软件开发的可行性和规划阶段 软件开发方案第一要做的工作就…

    2023年4月30日
    36200
  • 为什么大多数编程语言中的数组都是从0开始计数的

    大多数编程语言中的数组都是从0开始计数的原因是:1、历史原因;2、减少CPU指令运算;3、物理内存的地址是从0开始的。历史原因指语言出现顺序从早到晚C、Java、JavaScript。C语言数组下标是从0开始->Java也是->JavaScript也是。降低额外的学习和理解成本。 1、历…

    2023年1月27日
    1.0K00
  • 项目负责人如何养成管理能力

    项目负责人养成管理能力的关键在于:培养优秀的沟通技巧、深化专业知识、提高团队管理能力、加强时间管理和决策能力、以及学习如何自我激励和激励他人。在这些方面中,提高团队管理能力尤其重要,因为它直接影响项目的完成质量和效率。团队管理能力包括识别团队成员的长处和弱点、确保团队目标一致、以及高效地解决团队内部…

    2024年4月11日
    6000
  • SQL数据库E-R图怎么画

    绘制步骤:一、确定实体;二、确定属性;三、确定关系;四、绘制 E-R 图;五、优化 E-R 图。在绘制 E-R 图之前,需要先确定所有与数据库相关的实体。实体是现实世界中的一个对象或概念,例如学生、教师、课程等。每个实体都需要有一个唯一的标识符,通常是一个主键。 一、确定实体 在绘制 E-R 图之前…

    2023年5月31日
    1.2K00
  • 如何在项目中有效管理

    一、明确项目目标和期望 项目管理的有效性始于明确的项目目标和期望。明确的愿景、具体的目标、可衡量的成果,这些对项目的成功至关重要。目标应该具体,且与所涉及的各方利益相关,这样可以确保团队理解他们最终要实现的是什么。要使目标具体可行,SMART原则是一个十分有效的工具,它代表了目标的五个关键特征:特定…

    2024年4月10日
    6300
  • 制定项目干系人管理计划

    制定项目干系人管理计划的步骤是:1、干系人识别;2、干系人分析;3、干系人分类;4、干系人管理策略制定;5、沟通管理计划;6、吸引干系人;7、干系人参与计划;8、干系人管理计划的执行;9、监控和调整;10、记录和报告。在项目管理中,干系人管理计划是一个关键组成部分,它旨在识别所有干系人并分析他们的需求和期望,制定适当的管理策略以有效沟通并吸引他们参与项目过程。

    2023年11月11日
    58700

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部