Java中的TCP通信

TCP通信

  • TCP通信
    • Socket客户端
    • ServerSocket服务端
  • 例子:一发一收
  • 例子:多发多收
    • 异常捕获
  • 例子:服务器与多个客户端同时通信
    • 多客户端通信架构
    • 服务端代码
      • ServerReaderThread 服务端读数据线程

TCP通信

特点:面向连接、可靠通信
通信双方事先会采用“三次握手“方式建立可靠连接,实现端到端的通信;底层能保证数据成功传给服务端。
Java提供了一个java.net.Socket类来实现TCP通信

客户端向服务端发起连接请求,如果服务端接收该请求,两者之间会建立起一个可靠的通信管道。(被称为端到端的通信管道)

Socket客户端

在这里插入图片描述
在这里插入图片描述

ServerSocket服务端

在这里插入图片描述

例子:一发一收

最好将低级的字节输出流包装成数据输出流
客户端:
在这里插入图片描述
服务端:
在这里插入图片描述
服务端启动,在accept的位置阻塞等待客户端请求;

例子:多发多收

客户端:
在这里插入图片描述

服务端:
在这里插入图片描述
如果客户端退出了,服务端仍然等客户端消息,通信管道突然断掉,服务端就会抛出异常
在这里插入图片描述
28行即是 String rs = dis.readUTF(); 这个位置(服务端阻塞等待客户端发来消息的地方)

异常捕获

通信管道突然断掉,需要对异常进行处理
在这里插入图片描述

例子:服务器与多个客户端同时通信

前一个多发多收的例子是不可以支持与多个客户端同时通信的

  • 因为服务端现在只有一个主线程,只能处理一个客户端的消息

多客户端通信架构

在这里插入图片描述

服务端代码

在这里插入图片描述

ServerReaderThread 服务端读数据线程

在这里插入图片描述
离线处理:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/818516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态数据源实现分表走shardingsphere,不分表走其他

shardingsphere从4.1.1升级到5.2.1但是还没有完结,因为在执行存储过程的时候,系统提示错误如下。shardingsphere是不支持存储过程呢,但项目中不能避免使用存储过程,因为有大量的数据需要初始化,这种情况该如何应对&…

AI绘梦师新项目歪门邪道2.0游戏玩法,仅需拷贝,一键生成,单日盈利500

我们今天要介绍的项目是“AI绘梦师新项目歪门邪道2.0游戏玩法”。这个项目的核心是利用AI技术帮助企业将用户的梦境转化为美术作品。操作起来非常简单,只需复制用户描述的梦境内容,然后将其输入到AI绘画软件中,软件就能自动生成相应的画作。 …

APP开发突增20倍!安卓和鸿蒙你站哪边?

随着科技的快速发展,智能设备已经成为我们生活中不可或缺的一部分。 根据不少业内人士爆料,今年9月华为将发布mate70系列,而同时华为自己也官宣了"鸿蒙星河版",也就是原生鸿蒙系统,将于今年4季度商用。这很…

顶顶通呼叫中心中间件-SIP分机安全(mod_cti基于FreeSWITCH)

介绍 运行在公网的FreeSWITCH服务器,每天都会接收到很多恶意的呼叫请求和注册请求,尝试盗打电话。合理的配置可以防止电话给倒打,但是每天大量的攻击,会让FS产生很多日志,降低FreeSWITCH的处理能力,cti模块…

Python实现时间序列ARIMA模型(附带超详细理论知识和完整代码实现)

文章目录 0 结果1 介绍2 建模2.1 预备知识2.1.1 ADF检验结果(单位根检验统计量)2.1.2 差分序列的白噪声检验(这里使用Ljung-Box检验)2.1.3 ARIMA模型(差分整合移动平均自回归模型)的三个参数:p,…

《系统分析与设计》实验-----需求规格说明书 哈尔滨理工大学

文章目录 需求规格说明书1.引言1.1编写目的1.2项目背景1.3定义1.4参考资料 2.任务概述2.1目标2.2运行环境2.3条件与限制 3.数据描述3.1静态数据3.2动态数据3.3数据库介绍3.4数据词典3.5数据采集 4.功能需求4.1功能划分4.2功能描述…

(一)C++自制植物大战僵尸集成开发环境安装

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/uzrnw 1、下载Visual Studio集成开发环境 首先在微软官网下载Visual Studio 2022 Community版本。Community版本是免费的,并且满足个人开发的各种需求。Visual Studio 2022 下载链接:微软官网。选…

springboot+vue全栈开发【2.前端准备工作篇】

目录 前言准备工作Vue框架介绍MVVM模式 快速入门导入vue在vscode创建一个页面 前言 hi,这个系列是我自学开发的笔记,适合具有一定编程基础(html、css那些基础知识要会!)的同学,有问题及时指正!…

在Windows上配置VS Code GO语言开发环境

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【代码随想录】【动态规划】完全背包:零钱兑换,组合总和

零钱兑换 零钱作为物品 ,零钱的面额作为物品的重量 def change(self, amount, coins):""":type amount: int:type coins: List[int]:rtype: int"""dp [0]*(amount 1)dp[0] 1# 遍历物品for i in range(len(coins)):# 遍历背包for …

室内设计师怎么获取合适的3D模型?

在室内设计中,3D模型的使用已经变得越来越普遍。它们可以帮助设计师更好地展示他们的设计想法,同时也能帮助客户更好地理解他们所期待的装修效果。然而,如何获取合适的3D模型却是许多设计师和客户面临的挑战。那么室内设计师怎么获取合适的3D…

watchdog,监控文件变化的强大的python库

大家好,今天为大家分享一个无敌的 Python 库 - watchdog。 Github地址:github.com/gorakhargos… 在软件开发和系统管理领域,经常需要监控文件和目录的变化,以便在文件被创建、修改或删除时触发相应的操作。Python Watchdog是一…

有图片转成PDF文件格式的方法吗?分享图片转成PDF文件的方法

将图片转换为PDF文件是一个相对简单的过程,但也需要一定的步骤和注意事项。下面,我将详细介绍如何将图片转换为PDF文件,包括所需的工具、步骤以及可能遇到的问题和解决方案。 首先,我们需要一个能够将图片转换为PDF文件的工具。市…

【Booksim】Booksim2.0模拟器集成新拓扑

Incorporating a new topology in Booksim 1. 新拓扑结构2. 需要添加的文件3. 修改步骤 3.1 添加testnet.hpp3.2 添加testnet.cpp3.3 将testnet集成到network.cpp中3.4 创建配置文件testnetconfig3.5 在main.cpp和global.hpp中加入gP_testnet和gA_testnet变量3.6 make进行编译 …

尚小标-智能AI商标注册交易平台【24小时您口袋里的商标管家】

随着全球经济一体化进程的推进和科技的飞速发展,知识产权已经成为企业高质量发展的重要竞争关键因素,众多企业发展的核心竞争力。通过加强知识产权保护,企业可以更好地保护自身品牌形象和市场份额,从而提高国内外市场竞争力&#…

C语言洛谷题目分享(9)奇怪的电梯

目录 1.前言 2.题目:奇怪的电梯 1.题目描述 2.输入格式 3.输出格式 4.输入输出样例 5.说明 6.题解 3.小结 1.前言 哈喽大家好啊,前一段时间小编去备战蓝桥杯所以博客的更新就暂停了几天,今天继续为大家带来题解分享,希望大…

通用设计的四大原则,大厂设计师带案例讲解!

作为数字产品设计师,在进行产品设计时要考虑产品的各种因素,例如功能、美观、安全等,要尽可能地满足所有用户的需求,做出对所有用户都尽可能公平的解决方案。但是,对于新手来说,在实际进行产品设计时&#…

HUD抬头显示器中如何设计LCD的阳光倒灌实验

关键词:阳光倒灌实验、HUD光照温升测试、LCD光照温升测试、太阳光模拟器 HUD(Head-Up Display,即抬头显示器)是一种将信息直接投影到驾驶员视线中的技术,通常用于飞机、汽车等驾驶舱内。HUD系统中的LCD(Liq…

RabbbitMQ基本使用及其五种工作模型

初识MQ 同步通讯和异步通讯 什么是同步通讯呢?举个例子,你认识了一个小姐姐,聊的很火热,于是你们慢慢开始打电话,视频聊天,这种方式就成为同步通讯,那什么是一部通讯呢,同样的&…

Ant Design 表单基础用法综合示例

Ant Design 的表单组件设计得非常出色,极大地简化了表单开发的复杂度,让开发者能够快速构建出功能丰富、交互友好的表单界面。 接下来总结一下 Ant Design 中表单的基本用法。 Form 组件 用于定义整个表单,可以设置表单的布局方式、提交行为等。通常会将表单字段组件嵌套在 F…