首页 > 其他分享 >socket 技术是干什么的?底层原理是什么?

socket 技术是干什么的?底层原理是什么?

时间:2024-03-20 19:58:20浏览次数:23  
标签:接收数据 计算机 对象 干什么 网络协议 底层 数据包 Socket socket

Socket 技术是一种通信机制,用于实现不同计算机之间的网络通信和同一计算机内不同进程之间的进程间通信。它是一种抽象层,使得不同操作系统和编程语言的程序能够在网络上相互通信。

底层原理方面,Socket 技术基于网络协议栈和操作系统提供的网络编程接口。当程序使用 Socket 技术进行网络通信时,首先需要通过 socket 系统调用创建一个 Socket 对象,该对象包括 Socket 的类型、协议、端口号等信息。接着,程序通过 bind 系统调用将该 Socket 对象与本地 IP 地址和端口号进行绑定,从而使得其他计算机可以通过该 IP 地址和端口号访问该 Socket 对象。

当程序需要向另一个计算机发送数据时,它可以使用 Socket 对象的 send 系统调用,将数据发送到指定的远程计算机。发送数据时,Socket 对象会将数据封装成网络数据包,通过操作系统的网络协议栈进行路由和传输,最终到达目标计算机。目标计算机接收到数据包后,使用 Socket 对象的 recv 系统调用接收数据,解析数据包并将其传递给应用程序。

同样地,当程序需要从另一个计算机接收数据时,它可以使用 Socket 对象的 recv 系统调用来接收数据。接收数据时,Socket 对象会从网络协议栈中读取数据包,解析数据包并将其传递给应用程序。

总之,Socket 技术是一种通用的网络编程接口,底层基于网络协议栈和操作系统提供的网络编程接口,实现了不同计算机之间的网络通信和同一计算机内不同进程之间的进程间通信。它是实现网络通信的重要技术之一。

标签:接收数据,计算机,对象,干什么,网络协议,底层,数据包,Socket,socket
From: https://blog.csdn.net/qq_36777143/article/details/130594896

相关文章

  • Socketserver模块
    Socketserver模块socketserver主要是针对服务端来做的,所以对于客户端代码,并没有太多的改变网络协议的最底层就是socket,基于原有socket模块,又封装了一层,就是socketserversocketserver为了实现tcp协议,server端的并发首先,你必须通过子类化BaseRequestHandler类并重......
  • SocketIO高性能事件驱动设计探索
    来源:https://segmentfault.com/a/1190000021554678?utm_source=tag-newest背景SocketIO原生基于NodeJS实现的Web长连接技术方案,H5原生场景下通常使用websocket作为基础协议进行网络通信(客户端支持多语言),SocketIO对于长连接场景下的业务形态进行了很多方面的抽象和实现,比如:命名空......
  • C++ Qt开发:QUdpSocket实现组播通信
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QUdpSocket组件实现基于UDP的组播通信。组播是一种一对多的通信方式,允许一个发送者将数......
  • 为什么面试官都爱问websocket?
    什么是webSocket?WebSocket是一种在单个TCP连接上进行全双工通信的应用层协议,它弥补HTTP协议在持久通信能力上的不足,允许服务器主动向客户端推送数据,并且简化了客户端和服务器之间的数据交换。在WebSocket通讯中,浏览器和服务器只需完成一次握手,便可创建持久性连接。Web......
  • websocket相关
    一、websocket相关的计网知识点1.全双工,半双工,单工分别是什么意思它们三个其实指的是都是一种通信模式,是一个抽象概念,单工指的是信息是单通道单向的,信息只能从A传达到B,但是不能由B传达到A。比如广播站和收音机,收音机只能单方面接受广播站的信息。半双工则是单通道双向的,信息可以从......
  • @Transactional底层实现和失效场景
    本文介绍下@Transactional底层实现和哪些场景会导致其失效当使用@Transactional注解标注一个方法时,springboot会在运行时生成一个代理对象,该代理对象拦截被注解的方法调用,并在方法调用前后进行事务管理。事务管理包括开启事务、提交事务或者回滚事务等操作。@Transactional实现......
  • Nginx底层基础数据结构
    基础数据结构ngx_int_t32位操作系统4字节,64位操作系统8字节解决跨平台以及,普通int类型在x86和x64操作系统上面是4字节,在类型转换时造成内存浪费(如在x64下面转换long类型)typedefintptr_tngx_int_t;#ifdef_WIN64typedef__int64intptr_t;#elsetype......
  • Swoole 源码分析之 WebSocket 模块
    首发原文链接:Swoole源码分析之WebSocket模块大家好,我是码农先森。Swoole源码分析之WebSocket模块引言WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许客户端和服务器之间进行实时数据传输。与传统的HTTP请求-响应模型不同,WebSocket可以保持双向通信......
  • C++ Qt开发:QTcpSocket网络通信组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QTcpSocket组件实现基于TCP的网络通信功能。QTcpSocket和QTcpServer是Qt中用于实现基于T......
  • 数据结构之LinkedList底层代码全方位细节实现!
    题外话我很想发点nb的知识,但是路得一步一步走,饭也得一点一点吃,所以说不积跬步无以至千里,不积小流无以成江海!!!大家一起努力,未来属于我们!!正题理解链表相信大家看到这都应该明白链表,那就简单讲下链表组成今天实现LinkedList底层,LinkedList是一个双向链表,但是咱......