文档章节

关于使用UDP套接字进行本地进程间通信的问题

t
 thoresa
发布于 2015/05/18 13:42
字数 463
阅读 126
收藏 0

1、linux中进程间的通信可以使用套接字的方式

2、套接字的方式即将套接字的目的地设为“127.0.0.1:port”。以发包的形式将数据传输到本地的某个进程

3、套接字的方式可以选择UDP也可以选择TCP。UDP是不可靠连接,包头中只有源端口,目的端口,UDP长度以及UDP的校验和。传输层协议的校验和是需要对整个数据包进行校验的,具体可以查阅UDP协议和TCP协议头部的解释。

4、另外在<<TCP/IP详解 卷二:实现>>中文版P606页图23-3中,给出了接收缓存的默认大小是41600字节。那么说明一个问题:因为我们知道UDP协议只是尽可能的将数据报发送到目的地,没有重传机制。所以如果发送进程的发送速度太快,使得接收缓存没有能够及时腾出新的空间给新到的数据包,就会导致丢失数据。如果是这样的话,使用UDP套接字似乎不能够完成进程间的通信。

5、不过,还是需要实验证明:

实验设计:使用UDP套接字,本地的一个发送数据的进程将一个文件(srcFile)传输到本地的另一个接收进程。接收进程收到数据之后将其写入到另外一个文件(dstFile)中。比较这两个文件的大小

实验环境:一台4核的笔记本,内存大小为8G。原始文件(srcFile)的大小:4.18GB

实验结果:dstFile的大小为:3.17GB。可见使用UDP方式完成进程间通信,有可能会导致数据的丢失。

 


© 著作权归作者所有

t
粉丝 0
博文 29
码字总数 10639
作品 0
嘉定
私信 提问
从源码说swoole进程间通信原理

本文件假设你有c++和多进程编程的基础知识。 swoole进程间通信可以使用套接字(swooleprocess::write/ swooleprocess::read),也可以使用消息队列(push/pop)。本文的只讲述套接字通信部分。 ...

mickelfeng
2018/04/16
40
0
socket网络编程之TCP、UDP

之前说的用于进程间通信的几种方式:消息signal、管道pipe、消息队列msg、共享内存shm、信号量sem。都只适用于一台主机上的进程间通信,那么如何实现两台计算机之间的进程通信呢?所以,来了...

SherryX
2018/06/26
0
0
Python就业班笔记整理(一)

什么是socket? socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,socket属于全双工。 关于创建套接字的参数说明: sock...

我是小谷粒
2018/07/03
0
0
day26网络编程

1.1.1ThreadLocal #很类似于类中的调用私有方法 全局变量localschool就是一个ThreadLocal对象,每个Thread对它都可以读写student属性,但互不影响。你可以把localschool看成全局变量,但每个...

AAA年华
2017/11/27
0
0
HTTP、TCP/IP协议与Socket之间的区别

网络由下往上分为: 对应 物理层-- 数据链路层-- 网络层-- IP协议 传输层-- TCP协议 会话层-- 表示层和应用层-- HTTP协议 1、TCP/IP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议...

AlexMahoneFBI
2014/12/03
495
2

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部