套接字通信模型

2024-04-12 01:52
文章标签 接字 通信模型

本文主要是介绍套接字通信模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文内容主要参考《Android图形显示系统

    套接字也就是socket,一般用于网络中两个主机之间应用进程进行通信,在同一个主机也可以使用套接字完成进程之间的通信。

    在图形显示系统中,用到套接字进行通信的地方主要有VSync信号的分发以及输入事件的分发。

    在同一个主机使用套接字不需要关联IP地址和端口,创建套接字的方法如下。

void prepareSocket() {

    int sockets[2];

    if (socketpair(AF_UNIX, SOCK_SEQPACKET, 0, sockets)) {

    }

}

调用socketpair成功后,会返回两个套接字的文件描述符,文件描述符可执行读和写操作,对其中一个文件描述符执行写操作发送数据,另一个文件描述符会收到数据,执行读操作可把数据读取出来,反过来也是可以的,因此套接字可以双向传输。

    下面继续了解套接字通信模型,如下图所示。

                                                       套接字通信模型

    进程A通过socketpair创建了一对套件字,文件描述符分别为FD0和FD1,通过Binder方式把FD0传给进程B,进程B收到的文件描述符为FD0',FD1和FD0'同样是一对具有连接的套接字。进程A向FD1写入数据,进程B可检测到FD0'有数据,执行读操作可把数据读取出来,从而实现了进程A向进程B传输数据,反过来进程B也可向进程A传输数据。

这篇关于套接字通信模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895782

相关文章

微软C#套接字异步通信代码

Asynchronous Server Socket Example.NET Framework 4 其他版本 The following example program creates a server that receives connection requests from clients. The server is built with an asynchronous socket,

套接字的介绍

套接字(Socket)是计算机网络中用于实现不同主机之间通信的一种抽象概念。它提供了一种标准的接口,使得应用程序能够通过网络发送和接收数据。以下是关于套接字的详细介绍: 1. 套接字的基本概念 定义:套接字是一种用于网络通信的端点,通常由 IP 地址和端口号组成。它允许不同的程序进行网络通信。类型: 流套接字(TCP Socket):使用传输控制协议(TCP),提供可靠的、面向连接的通信。数据

JAVAEE初阶第六节——网络编程套接字

系列文章目录 JAVAEE初阶第六节——网络编程套接字 文章目录 系列文章目录JAVAEE初阶第六节——网络编程套接字 一. 网络编程基础1. 为什么需要网络编程2. 什么是网络编程3.网络编程中的基本概念 3.1 发送端和接收端 3.2 请求和响应 3.3 客户端和服务端 4. 常见的客户端服务端模型 5. TCP和UDP特点上的差别(初识) 二.Socket套接字 1. 概

CocoaAsyncSocket 套接字

https://github.com/robbiehanson/CocoaAsyncSocket   Asynchronous socket networking library for Mac and iOS 用于iOS以及Mac的异步套接字网络库。   TCP GCDAsyncSocket and AsyncSocket are TCP/IP socket networking l

网络编程套接字(Socket)详解 V✪ω✪V

目录 🍈一.什么是网络编程 1.1什么是网络编程? 1.2网络通信中的基本概念: 🍇二.Soket(套接字)→网络编程的基础 2.1概念: 2.2Socket套接字分类: 数据包套接字:使用传输层UDP协议 流套接字:使用传输层TCP协议 🍊三.UDP通信程序 3.1UDP通信的流程: 3.2通过UDP实现服务器客户端的交互: 🥥四.TCP通信程序 ​编辑

网络编程套接字(含Java示例)

文章目录 Socket套接字概念分类流式套接字:使用传输层TCP协议数据报套接字:使用传输层UDP协议Unix域套接字 TCP vs UDP有连接 vs 无连接可靠传输 vs 不可靠传输面向字节流 vs 面向数据报全双工 vs 半双工 UDP数据报套接字编程DatagramSocketDatagramPacket代码示例 TCP流套接字编程ServerSocket(专门给服务器用的)Soc

JavaEE第19节 用UDP套接字实现简单回显服务器

目录 一、API介绍`DatagramSocket` 用于发送和接收数据报。`DatagramPacket` 是UDP对数据的封装的基本单位 二、创建简单的回显服务器 服务器端 客户端 三、程序优化 一、API介绍 UDP协议面向数据报进行传输,所以在代码中基本是以数据报(DatagramPacket)作为操作对象,进行输入和输出的。 JAVA提供了两个常用的类去操作UDP套接字

【案例64】无法从套接字读取更多的数据

问题现象 系统突然间登录报如下错误:SELECT * FROM sm_user WHERE user_code_q=? 无法从套接字读取更多的数据 问题分析  查看nc-log.log发现大量相关报错 $$callid=1723104097968-1063 $$thread=[http-bio-xxx-xxx-exec-xxx] $$host=xxx$$userid=#UAP#

Error querying database. Cause: java.sql.SQLException: 无法从套接字读取更多的数据

java + oracle 查询报错: Cause: java.sql.SQLException: 无法从套接字读取更多的数据;uncategorized SQLException for SQL []; SQL state [null]; error code [17410]; 无法从套接字读取更多的数据; nested exception is java.sql.SQLException:

linux文件描述符和套接字的问题

记得刚学linux的时候 就会听到一句"一切皆文件" 上面标准输入 标准输出 标准错误 重定向 blablabla... 今天在写一个基于epoll的聊天室  客户端fork 父进程负责读 子进程负责写 感觉这好像服务端 主从备份..还像nginx中的进程的模型,各个worker 从 listen 后的 master fork出来的 master负责分发 worker负责处理  主要是映射到各个