首页 > 其他分享 >Web Socket介绍

Web Socket介绍

时间:2023-08-29 14:33:48浏览次数:43  
标签:Web Socket 端口 应用程序 TCP 介绍 IP地址 端口号

在开发网络应用程序的时候,我们会遇到Socket这个概念。Socket是一个抽象概念,一个应用程序通过一个Socket来建立一个远程连接,而Socket内部通过TCP/IP协议把数据传输到网络:

┌───────────┐                                   ┌───────────┐
│Application│                                   │Application│
├───────────┤                                   ├───────────┤
│  Socket   │                                   │  Socket   │
├───────────┤                                   ├───────────┤
│    TCP    │                                   │    TCP    │
├───────────┤      ┌──────┐       ┌──────┐      ├───────────┤
│    IP     │◀───▶│Router│◀────▶│Router│◀───▶│    IP     │
└───────────┘      └──────┘       └──────┘      └───────────┘

为什么需要Socket进行网络通信?

答:因为仅仅通过IP地址进行通信是不够的,同一台计算机同一时间会运行多个网络应用程序,例如浏览器、QQ、邮件客户端等。当操作系统接收到一个数据包的时候,如果只有IP地址,它没法判断应该发给哪个应用程序,所以,操作系统抽象出Socket接口,每个应用程序需要各自对应到不同的Socket,数据包才能根据Socket正确地发到对应的应用程序。

一个Socket就是由IP地址和端口号(范围是0~65535)组成,可以把Socket简单理解为IP地址加端口号。端口号总是由操作系统分配,它是一个0~65535之间的数字,其中,小于1024的端口属于特权端口,需要管理员权限,大于1024的端口可以由任意用户的应用程序打开。

使用Socket进行网络编程时,本质上就是两个进程之间的网络通信。其中一个进程必须充当服务器端,它会主动监听某个指定的端口,另一个进程必须充当客户端,它必须主动连接服务器的IP地址和指定端口,如果连接成功,服务器端和客户端就成功地建立了一个TCP连接,双方后续就可以随时发送和接收数据。












标签:Web,Socket,端口,应用程序,TCP,介绍,IP地址,端口号
From: https://blog.51cto.com/u_16206682/7276588

相关文章

  • 怎么样去学习javaweb
    据Java官方记载,只有JavaSE和JavaEE这类表述,似乎并没有JavaWeb这么一个说法,所以,我更愿意认为,JavaWeb是各位Java前辈们对于Java在Web方向应用的相关技术栈,正如现在的PythonWeb,golangweb等等,只不过是通过某种语言来实现web应用而已。让我们先看看百度百科对于JavaWeb的定义,JavaW......
  • Web编辑器 从word中复制内容带多张图片
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......
  • Web自动化
    第1章-Web自动化入门Web自动化测试1、自动化概念:由机器设备代替人工自动完成指定目标的过程优点:减少人工劳动力;提高工作效率;产品规格统一标准;规模化(批量生产)2、自动化测试软件测试:校验系统是否满足规定的需求、弄清预期结果与实际结果之间的差别概念:让程序代替人工去验......
  • Web服务器项目详解
    文章目录一、新连接到来的处理流程二、Channel、TcpConnection、TcpServer、Poller、EventLoop类详解1、Channel类2、TcpConnection类3、TcpServer类4、Poller类5、EventLoop类三、这几个类之间的关系一、新连接到来的处理流程一个新的连接到来后,首先被MainReactor接收,然后通过轮......
  • Redis介绍跟安装配置
    目录一redis介绍1.1redis是什么1.2redis的特点二centos上安装redis三redis启动方式3.1最简启动3.2动态参数启动(了解)3.3配置文件启动一redis介绍1.1redis是什么开源:早起版本2w3千行基于键值对的存储系统:字典形式多种数据结构:字符串,hash,列表,集合,有序集合高性能,功......
  • linux swap 内存交换分区 详细介绍
    目录1、什么是SWAP,到底是干嘛的?为什么要进行内存回收?会回收的两种内存2、swappiness到底是用来调节什么的?那么这个swappiness到底起到了什么作用呢?3、kswapd什么时候会进行swap操作?4、什么是内存水位标记?(watermark)相关参数设置swap的相关操纵命令5、swap分区的优先级......
  • Swift - 高阶函数介绍(map、flatMap、filter、reduce)
     Swift-高阶函数介绍(map、flatMap、filter、reduce)https://blog.csdn.net/Alexander_Wei/article/details/78543410?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-78543410-blog-127072873.235%5Ev38%5Epc_r......
  • 编译wasm Web应用
    刚学完WebAssembly的入门课,卖弄一点入门知识。首先我们知道wasm是目标语言,是一种新的V-ISA标准,所以编写wasm应用,正常来说不会直接使用WAT可读文本格式,更不会用wasm字节码;而是使用其他高级语言编写源代码,经过编译后得到wasm应用。课程中使用了C++来编写源代码,所以这里我也用C++来......
  • Web服务器项目中常问的开放性问题
    文章目录一、对后端开发的看法?二、为什么要做静态http服务器?三、为什么要使用ET模式?四、多线程编程的注意事项1、为什么要用多线程2、多线程编程的特点3、确保线程安全的几种方式4、与多线程有关的编程方法五、使用Linux系统有什么好处?六、对云计算的看法?七、服务器突然崩溃退出,怎......
  • spring boot WebSocket @ServerEndpoint注解标识的class无法获取spring容器中的bean
    在@ServerEndpoint类中直接使用@Autowired注解注入Spring管理的bean可能不会成功,因为@ServerEndpoint并不受Spring容器的管理。通过创建一个静态的成员遍历属性和一个带有@Autowired注解的setter方法,你可以在类加载时将bean注入到静态属性中。但是,请注意这样做......