通俗讲解什么是Socket通讯

这篇具有很好参考价值的文章主要介绍了通俗讲解什么是Socket通讯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Socket通讯原理

1、什么是Socket?

socket通信,网络,udp,tcp/ip,网络协议,Socket

Socket,即套接字。就是两台主机之间逻辑连接的端点。(通俗来说:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket)。

Socket是一套用于不同主机之间通信的API,它工作在我们的TCP/IP协议栈之上,可应用于浏览器、手机应用或用于服务器管理的SSH客户端等。

要通过Socket与不同主机建立通信,我们只需要指定主机的IP地址和一个端口号。

socket通信,网络,udp,tcp/ip,网络协议,Socket

  • IP地址用于唯一标志你的网络设备

  • 端口主要用于区分主机上的不同应用(没有端口,操作系统没有办法区分数据到底应该发送到哪一个应用上)

  • socket通信,网络,udp,tcp/ip,网络协议,Socket

通过Socket我们可以建立一条用于不同主机,不同应用之间的虚拟数据通道,并且它是点对点(应用对应用)的,可以将其比喻为将一条数据线连接在不同应用的插槽上,这也是socket这个名字的由来。

socket通信,网络,udp,tcp/ip,网络协议,Socket

2、Socket的类型

常用的Socket的类型有两种:TCPUDP

2.1 TCP-传输控制协议

特点1:TCP是可靠的,它的底层会自动检测并回传丢失的数据包,因此对于调用者来说,你发送的数据对方一定会接受到。

socket通信,网络,udp,tcp/ip,网络协议,Socket

特点2:发送和接受到的数据顺序是完全一致的,比如你发送了一段字符,对方就一定会原封不动的收到同样的字符串,这也就是为什么说TCP是基于“数据流”的协议。

TCP要求收发数据的双方扮演不同的角色:服务器和客户端。

服务器会被动等待客户端的连接,它自己不会主动发起请求。

socket通信,网络,udp,tcp/ip,网络协议,Socket

2.2 UDP-用户报文协议

UDP以报文(Datagram)为单位来收发数据,并且UDP不会自动回传丢失的数据包,因此不保证数据一定能被对方接受到。

正是因为缺少了这些检查,UDP通常具有更低的延迟并占用更少的系统资源,它也更适合于像视频语音通话这种实时性要求较高的应用。

socket通信,网络,udp,tcp/ip,网络协议,Socket

3、在两端间传数据

socket通信,网络,udp,tcp/ip,网络协议,Socket

通过Socket,我们可以将与某台机子建立连接,如果想要在两端间传份数据:

两端各执行socket()方法,得到fd句柄之后,对于服务端依次执行bind()、listen()、accept()方法,然后坐等客户端的连接请求执行connect()方法,向服务端发起建立连接的请求,连接建立完成后,客户端可以执行send()方法发送消息,服务端可以执行recv()接受消息。

反过来,服务器也可以执行send()发送消息,客户端执行recv()接受消息。

socket通信,网络,udp,tcp/ip,网络协议,Socket

服务端是怎么区分多个客户端的?

客户端发来的数据包上会有源IP地址和端口,以及目的IP地址和端口,这四个元素构成一个四元组,可以用于唯一标记一个客户端。

socket通信,网络,udp,tcp/ip,网络协议,Socket文章来源地址https://www.toymoban.com/news/detail-737407.html

到了这里,关于通俗讲解什么是Socket通讯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用 python socket 实现UDP/TCP网络通信

    目录 目录 1.socket简介 2.创建socket 2.1创建UDPSocket 2.2创建TCPSocket 3.使用UDPSocket发送数据并接收 4.使用UDPSocket发送广播 5.UDPSocket聊天器 (多线程实现消息的收发功能) 6.使用TCPSocket建立客户端 7.使用TCPSocket建立服务端        socket(简称:套接字),是支持TCP和UDP(网络传输方式

    2023年04月10日
    浏览(62)
  • tcp/udp socket 网络通信中超时时间的设置

    1.connect函数的超时时间设置只对TCP有效 UDP由于是无连接的connect都会返回success 有两种方法: 第一种方法 默认的socket是阻塞模式 我们只需要设置其为非阻塞模式,然后调用select去查询其状态 代码如下:  第二种是 默认其为阻塞模式  通过setsockopt 函数设置TCP_SYNCNT 值 头文件

    2024年02月15日
    浏览(39)
  • 【Java基础教程】(四十七)网络编程篇:网络通讯概念,TCP、UDP协议,Socket与ServerSocket类使用实践与应用场景~

    了解多线程与网络编程的操作关系; 了解网络程序开发的主要模式; 了解 TCP 程序的基本实现; 在Java中,网络编程的核心意义是实现不同电脑主机之间的数据交互。Java采用了一种简化的概念,将这个过程进一步抽象为JVM(Java虚拟机)进程之间的通信。可以在同一台电脑上

    2024年02月15日
    浏览(63)
  • 【Java网络编程】基于UDP-Socket 实现客户端、服务器通信

    ​ 哈喽,大家好~我是你们的老朋友: 保护小周ღ   本期为大家带来的是网络编程的 UDP Socket 套接字,基于 UDP协议的 Socket 实现客户端服务器通信 ,Socket 套接字可以理解为是,传输层给应用层提供的一组 API,如此程序,确定不来看看嘛~~ 本期收录于博主的专栏 : JavaEE_保

    2024年02月02日
    浏览(63)
  • 【Java】网络编程与Socket套接字、UDP编程和TCP编程实现客户端和服务端通信

    为什么需要网络编程? 现在网络普及程序越来越高,网络上保存着我们日常生活中需要的各种资源,使用程序通过网络来获取这些资源的过程就需要网络编程来实现。 什么是网络编程? 网络编程,指网络上的主机,通过不同的进程以程序的方式实现网络通信(网络数据传输)

    2024年02月17日
    浏览(73)
  • 树莓派学习:建立socket进行网络通信+tcp+udp+端口+字节序+socketAPI+地址转换API+聊天对话框实战

    目录 socket套接字网络通信学习 数据协议 tcp udp ip地址 端口 字节序 步骤  API介绍 地址转换API 实战  聊天对话框 服务器  运行时后面要传IP地址和端口 客户端   运行时后面要传IP地址和端口 socket是网络通信,通信的数据协议有http、tcp、udp等等,简单来说就是传输数据的格式

    2024年02月05日
    浏览(52)
  • C语言 进程通讯 socket套接字(TCP/UDP)示例

    主机字节序(host-byte):指处理器存储数据的字节顺序,分两种         大端存储(big-endian):低地址存储数据高位(符合书写规则),由ARM、Motorola等采用         小端存储(little-endian):低地址存储数据低位(将数据不重要的部分保存在低地址,重要的部分保存在高地

    2024年02月05日
    浏览(50)
  • 基于python socket实现TCP/UDP通信

    两个应用程序如果需要进行通讯最基本的一个前提就是能够唯一的标示一个进程,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程。能够唯一标示网络中的进程后

    2024年02月16日
    浏览(48)
  • Linux TCP/UDP socket 通信和IO多路复用

    主机字节序 16 位值 == 网络字节序 16 位值 主机字节序 32 位值 == 网络字节序 32 位值 主机字节序的字符串IP地址  == 网络字节序的整形IP地址 将监听的套接字和本地IP和端口进行关联 给监听的套接字设置监听,开始检测客户端链接 等待并接受客户端的连接,阻塞函数,没有客

    2024年02月05日
    浏览(60)
  • Socket套接字编程(实现TCP和UDP的通信)

      🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔 🦾🦾🦾 目标梦想:进大厂,立志成为一个牛掰的Java程序猿,虽然现在还是一个🐒嘿嘿 谢谢

    2024年02月03日
    浏览(88)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包