java总结

devtools/2025/1/16 21:05:40/

最近项目遇到了很多问题,第一就是长连接短连接的问题

最常出现的问题就是:socket is close
然后就是:Ac

关于第一个问题:在我第一次这个项目的时候就疑惑了很久,问题主要体现在客户端和服务器两方面,在客户端中,只要有一个流关闭,客户端和服务器就建立不起来连接,主要体现,所以我们不能使用close来关闭流,只能使用flush来刷新流,目前还没想到什么在不关闭流的就能使socket关闭的方法,就目前而言我只能实现,通过不断创建流来维持和服务起的联系。

服务器也是同样的道理(对于短连接可以选择关闭,反正在短连接中循环时一定要关闭的),所以我们最好在短连接的时候就要把流该关闭的就要关闭。

而在长连接中我们尽量使用flush来实现这个不关闭流然后socket不关闭。

关于第二个问题更加的麻烦这个问题主要时在序列化流的设计上的问题,每次我们在传送资料的时候流都会带一个头节点,这个头节点相当于是一个标记的作用我们在使用这个时候需要自己来写一个继承于ObjectInputStream流的流,这个时最好的,但是这个需要我们自己人工来进行判断,我们当然可以选择开多个线程来分别判断这个事短连接还是长连接(就我目前的知识水平来说并不知这个那个好那个坏),由于我最开始写的就是没有开多线程来实现这个的,所以还是按照我的想法来进行书写,使用一个while循环,每次一遇到短连接,就将while循环里面的条件改变为false这个样就可以及时反应出短连接还是长连接了。

在长连接中我可以不断的new一个流出来,这样就可以使得我们都可以创造一个头节点了,但是这样会很占用资源(毕竟没有close掉只是flush掉,到最后会越来越多,不建议这种搞法,还是自己写一个继承流好。)。


http://www.ppmy.cn/devtools/26468.html

相关文章

Spring MVC入门程序

SpringMVC入门程序 一、实现思路 掌握Spring MVC入门程序,能够实现入门程序的编写 二、编码实现 1、新建项目 项目:maven,原型:maven-archetype-webapp,GroupID:com.sw 引入pom依赖 2、补充项目目录 src…

模拟LinkedList实现的双向链表

1. 前言 前文我们用java语言实现了无哨兵的单向链表.稍作修改即可实现有哨兵的单向链表.有哨兵的单向链表相较与无哨兵的而言,其对链表的头结点的增删操作更为方便.而在此我们实现了带有头节点和尾节点的双向链表(该头节点和尾节点都不存储有效的数据). 2. 带有头…

ECharts在网页中添加可视化图标-在网页中添加交互图表+option模块案列详解

一、引言 ECharts 是一个使用 JavaScript 编写的开源可视化库,它可以在浏览器中生成交互式的图表。无论是折线图、柱状图、散点图还是饼图,ECharts 都能轻松应对。本文将带领大家了解如何在网页中添加 ECharts 可视化图标。 本章可以直接跳到第五点完整…

2024 华东杯高校数学建模邀请赛(B题)| 自动驾驶转弯问题 | 建模秘籍文章代码思路大全

铛铛!小秘籍来咯! 小秘籍团队独辟蹊径,以偏微分方程,中心驱动等强大工具,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。 抓紧小秘籍&…

Zapier 与生成式 AI 的自动化(四)

原文:zh.annas-archive.org/md5/057fe0c351c5365f1188d1f44806abda 译者:飞龙 协议:CC BY-NC-SA 4.0 第十三章:最新发布的应用程序和功能 在前几章中,我们探索了 Zapier 内置应用程序的广泛范围以及它们用于自动化任务…

CentOS-Stream-9添加删除账户

添加普通用户,既可以登录系统,也可以访问服务 useradd -s /bin/bash -m abc 添加abc用户,自动创建目录。 passwd abc 设置用户密码 添加不能登录系统的用户,可以访问ftp服务 vim /etc/shells,在其中添加一行/sbin/…

JSON转CSV:使用Java处理复杂数据结构

引言 在数据处理和分析的世界中,经常需要将数据从一种格式转换为另一种更便于处理或分析的格式。本文将详细介绍如何使用Java语言,配合Jackson和Apache Commons CSV库,将嵌套的JSON数据转换成CSV格式。这种技能在数据科学、软件开发和系统集…

BPE、Wordpiece、Unigram、SpanBERT等Tokenizer细节总结

BPE(Byte Pair Encoding) GPT-2和Roberta用的是这种,不会产生[UNK]这个unknown字符 这部分部分摘录自https://martinlwx.github.io/zh-cn/the-bpe-tokenizer/ 看以下code例子就足够理解了,核心是维护self.merges(维护一个pair->str的字…