下面先讲一讲串口通信的一些基本概念,术语。如果对串口通信比较熟悉的,就当复习复习,如果哪里讲错或不到位,也可以及时指出,当作一块交流交流。 这里并不对串口的编程作讲解,主要是从应用的角度去讲一讲。因为更多的时候,都是产品做好了,比如触摸屏需要和控制器,PLC通信。理想的情况下,一般只要一上电,不需要太多的操作和配置,就可以通信上。在这里罗列了一些问题,待会对 …
线程通信
多线程----GCDGCD好处用于多核的并行计算利用更多的内核在多核中自动管理线程的生命周期不需要编写任何线程管理代码GCD的任务和队列任务 同步执行和异步执行 主要区别:是否等待队列的任务执行结束,是否具备开启新线程的能力队列 串行队列和并发队列 执行任务的等待队列,用来存放任务的队列,是一种特殊的线性表,采用先进先出的原则多线程的六种组合方式同步 + …
在服务端我们通常用一个TcpListener来监听一个IP和端口,客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用异步的方式去接收。在了解编程模式之前,首先我们先简单介绍下模式中所需涉及到的几个知识点,同步编程、异步编程及阻塞。什么是同步编程? 这里就是一个同步接收的方式,那为什么说同步呢,因为在这个端口下如果同时来了两个客户端请求,第一个 …
1. 连接池预先建立一个连接缓冲池,并提供一套连接使用、分配、管理策略,使得该连接池中的连接可以得到高效、安全地复用,避免了连接频繁建立、关闭的开销。2. 断线重连由于网络波动造成用户间歇性的断开与服务器的连接,待网络恢复之后服务器尝试将用户连接到上次断开时的状态和数据。3. 会话保持会话保持是指在负载均衡器上的一种机制,可以识别客户端与服务器之间交互过程的 …
在月薪过万的Java工程师面试中,线程问题是必考的重灾区。本文用15分钟带你掌握线程核心知识,文末附赠「高并发场景优化指南」!一、为什么线程是Java程序员的分水岭?性能提升:单核CPU实现网页多标签同时加载资源利用:数据库连接池复用技术背后的秘密用户体验:微信消息接收和输入同时进行的奥秘二、线程 vs 进程:快递站的精妙比喻维度进程线程资源开销独立内存空间 …
点赞再看,养成习惯,微信搜一搜【一角钱技术】关注更多原创技术文章。本文 GitHub org_hejianhuiJavaStudy 已收录,有我的系列文章。前言BIO 、NIO 、AIO 总结Unix网络编程中的五种IO模型深入理解IO多路复用实现机制在学习Netty 之前我们最好先掌握 BIO、NIO、AIO 基础知识,前面我们已经花了三篇文章去讲这些知识 …
Socket通讯是软硬件直接常用的一种通讯方式,分为TCP和UDP通讯。在我的职业生涯中,有且仅用过一次UDP通讯。而TCP通讯系统却经常写,正好今天写了一个TCP通讯的软件。总结一下内容软件使用C#编程原因写的,为了能够使用所有的电脑,采用了NET Framework 4.0。启动服务端服务端启动的时候,先写一个Task任务启动一个服务端的链接,注意服务端 …
背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题?通过多线程模拟多窗口售票为例:#include <iostream>#include<pthread.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<u …
开门见山比较系统地学习基于TCP协议实现网络通信,也是计算机网络中重中之重,TCPIP属于网络层,在java中,对该层的工作实现了封装,在编程中,就更加容易地去实现通信,而不用顾及底层的实现。当然,我们需要熟悉五层协议,在实践中体会其中的原理,理解更加深刻。本篇将使用客户端-服务器(CS架构),结合多线程技术,模拟类似QQ、微信聊天功能,实现一个网络实时聊天 …
完全是基础,新手可以随意看看,大牛可以关闭浏览页了,哈哈。 在开始介绍socket前先补充补充基础知识,在此基础上理解网络通信才会顺理成章,当然有基础的可以跳过去了。都是废话,进入正题。TCPIP:Transmission Control ProtocolInternet Protocol,传输控制协议因特网互联协议,又名网络通讯协议。简单来说:TCP控制传 …