- 博客(49)
- 收藏
- 关注
原创 SSLSocket Tcp连续发送信息
文章摘要: 这是一个实现SSL/TLS安全通信的TCP客户端工具类,主要功能包括:1) 建立SSL/TLS 1.2加密连接;2) 实现持续消息发送和接收;3) 提供连接状态管理。核心类SSLClient封装了SSLSocket操作,包含连接建立、消息收发和断开连接功能,并使用了自定义的TrustAllManager(仅限测试环境)。配套的SSLSocketClientHelper类提供了更高级的管理功能,包括定时发送心跳数据、异步消息处理和状态回调接口。
2025-12-03 15:24:07
115
原创 CertificateCreator生成服务器证书server.pfx
2.C#代码,使用Blend for Visual Studio 2022运行。1.创建服务器生成证书地址时,需要先创建Server.pfx空文件。
2025-12-03 14:51:41
184
原创 SSLSocket 服务器端WPF C#测试代码
摘要: 本文展示了一个SSL Socket TCP服务器的WPF界面实现,包含服务器配置、日志显示和客户端管理功能。界面采用网格布局,分为标题栏、主内容区和状态栏。主内容区包含日志显示文本框和控制面板,控制面板提供端口设置、证书配置、服务器启停等功能。代码部分实现了SSL加密通信,使用X509证书进行身份验证,支持多客户端连接管理和消息发送功能。服务器状态通过CancellationTokenSource控制,实时显示连接状态和日志信息。
2025-12-03 14:25:42
294
原创 Android中使用SQLCipher加密GreenDao数据库不成功
本文介绍了使用GreenDao与SQLCipher实现Android数据库加密的步骤:1)添加GreenDao插件和SQLCipher依赖;2)配置GreenDao参数;3)在Application中初始化SQLCipher库;4)通过DevOpenHelper获取加密数据库实例并设置密码。这些配置实现了对Android本地数据库的安全加密存储功能。(148字)
2025-11-11 16:28:34
173
原创 语言切换时广播没有监听到语言变化
本文介绍了Android应用实现语言切换功能的关键代码。通过BroadcastReceiver监听系统配置变化(ACTION_CONFIGURATION_CHANGED),提供了三种获取当前语言设置的方法:1)获取默认locale;2)从配置中获取首选locale;3)从SharedPreferences读取自定义语言设置。同时展示了广播的注册与注销流程,使用IntentFilter进行广播接收器的动态注册,并在适当时机进行注销以避免内存泄漏。该实现可用于应用内多语言切换场景,支持监听语言变化并作出响应。
2025-08-27 17:35:49
169
原创 WPS 将一个PPT里面的图片和文字导入到另一个PPT中
WPS将PPT内容导入另一PPT的方法:操作步骤简单,通过6步即可实现文字和图片的跨文件迁移,并保持原模板格式。
2025-07-28 11:18:07
1300
原创 DataBinding与自定View进行绑定
摘要:这段代码展示了在Android开发中使用DataBindingUtil.inflate()方法进行数据绑定视图的创建。该方法通过LayoutInflater从指定资源ID(R.layout.viewId)中加载布局,并将其与当前视图(this)绑定,true参数表示将生成的视图直接添加到当前视图层级中。
2025-06-05 16:31:28
129
原创 android TextView背景显示不全,出现一闪一闪的缺口
在Android开发中,当使用TextView的background属性设置shape为oval时,可能会出现显示不全或闪烁的缺口问题。这通常与硬件加速有关。解决方法是关闭当前Activity的硬件加速。具体操作是在AndroidManifest.xml文件中找到对应的<activity>标签,并添加android:hardwareAccelerated="false"属性。这样可以有效避免显示异常问题,确保TextView的背景形状正确显示。
2025-05-23 16:13:28
161
原创 bug exposed beyond app through Intent.getData()
对于面向 Android 7.0 的应用,Android 框架执行的 StrictMode API 政策禁止在您的应用外部公开 file:// URI。如果一项包含文件 URI 的 intent 离开您的应用,则应用出现故障,并出现 FileUriExposedException 异常。ini 代码解读复制代码 Intent intent = new Intent(Intent.ACTION_GET_CONTENT);2、对应应用默认缓存根目录:Context.getCacheDir()
2025-02-25 16:23:55
932
原创 Android 32位和64位版本的Android系统String.getBytes(StandardCharsets.UTF_16)获取的字节顺序有所不同
在32位系统上,默认使用大端字节顺序(Big Endian),而在64位系统上,默认使用小端字节顺序(Little Endian)。这意味着,如果你在一个系统上序列化数据,然后在另一个系统上反序列化,可能会遇到问题,因为它们可能有不同的字节顺序。总结:在处理字符串编码为字节数组时,明确指定字节顺序是一个好的实践,以确保数据在不同平台和系统之间的兼容性。如果数据需要在不同字节序系统之间传输,确保在序列化时使用明确的字节顺序,并在反序列化时正确解析。对于关键数据,可以使用加密确保数据的一致性。
2024-12-12 17:13:06
342
原创 AppCompatAutoCompleteTextView 传入降序数据下拉框不显示
如果返回的是ture数字出现降序将会不显示,降序显示时需手动将其改为false。
2024-09-27 17:24:21
222
原创 TextView添加android:includeFontPadding=“false“属性后“g”字符显示不全
TextView添加android:includeFontPadding="false"属性后“g”字符显示不全。
2024-07-19 16:34:04
654
原创 android如何修改.aar包里面java文件的代码
2.然后通过android studio打开查看.aar文件,找到要修改的类,将其全部拷贝至新建的类中,把报错的参数和却R的引用补齐,保证不报错,运行因为新建的类与要修改的包里面的类会冲突,所以要进行包修改。3.将.aar包拷贝至桌面,将后缀改为.zip后缀,然后鼠标双击直接打开(不要解压)1.在项目中新建一个和.aar中要修改的代码的类一样类名的类(类名包名都一样)7.完成,那个要修改的类已经被我们提出来,想怎么修改就怎么修改。5.找到要修改的类.class,将其删除。
2023-12-21 12:37:44
1241
原创 javaWeb直接用域名访问网站
第一步:将tomcat访问端口号更改为 80,更改后可以通过访问http://www.xxx.com查看是否访问到tomcat的界面。如果为本地测试,在浏览器输入127.0.0.1,即可访问到项目的默认主页,若没有默认主页则可能会出错,可尝试用项目业务路径来测试。shop是你的项目的名字,把你的项目的名字放上面就可以了。不用再通过项目的名字来访问这个项目,直接用域名就可以访问到这个项目。比如我可以直接访问域名:http://www.xxx.com/,最主要配置tomcat的server.xml文件。
2023-04-25 23:38:15
1071
转载 Netty在Android中使用
在初始化时添加:.addLast(new IdleStateHandler(30, 10, 0)) //参数1:代表读套接字超时的时间,例如30秒没收到数据会触发读超时回调;.addLast(new ByteArrayDecoder()) //接收解码方式。.addLast(new ByteArrayEncoder()) //发送编码方式。.addLast(new ByteArrayDecoder()) //接收解码方式。
2023-04-24 15:27:45
912
转载 读写SD卡目录的问题
收藏大佬的,用于自己学习:前言:本文的核心是解决安卓上面读写SD卡目录的问题。众所周知,安卓上面对于应用来说可以读写的有三块区域:1.data/data/包名;2.sdcard/Android/data/包名;3.sdcard目录。前两块区域读写一般是没有什么限制的,可以直接读写。但是第三块区域,因为各个APP都可以申请对这块区域进行读写,所以就会很乱,因此安卓也在不断的加强对这块区域管控的力度。但是我们对SD卡根目录直接读写的需求是一直存在的,所以本文将会记录每个安卓版本对这块权限的变化,
2022-04-25 11:20:20
354
原创 同一台服务器上同时装两个Tomcat且同时运行
1.复制整个tomcat文件改名2.更改server文件中的三个端口号,让其与原文件不一样3.保存启动Tomcat完成,多个也是一样的操作
2022-04-13 17:00:09
1933
原创 设置任意位置和大小的Dialog
public void show(Context context){CommonDialog dialog = new CommonDialog(context);Window window = dialog.getWindow();if (window != null) {View view = LayoutInflater.from(context).inflate(R.layout.dialog, null);dialog.setContentView(view);WindowManage
2022-03-15 16:00:21
208
转载 ffmepg:使用ffmpeg转换音视频格式
收藏一下大神的作品:https://blog.youkuaiyun.com/ETalien_/article/details/102917887使用ffmpeg转换音视频格式转换音频格式ffmpeg -i input.mp3 output.wav //把mp3文件转换为wav文件ffmpeg -i input.wav -acodec libmp3lame -aq 4 -ar 44100 -ab 320k -ac 2 output.mp3 //把wav文件转换为mp3文件ffmpeg -i input.wav
2022-02-12 22:26:22
4139
原创 java.io.IOException: Prepare failed.: status=0x1
应该是名字有空格或者中文无法识别1.直接改成纯英文名字2.查了查资料和网上的解决办法如下:mp.setDataSource(PATH_TO_FILE);mp.prepare();这个地方修改如下:File file = new File(strPath);FileInputStream fis = new FileInputStream(file);mediaPlayer.setDataSource(fis.getFD());mp.prepare();或者把mediaPlayer.pr
2022-02-12 11:17:09
3159
原创 Activity当弹出时设置位置
private void setWindowAttributes() {WindowManager.LayoutParams p = getWindow().getAttributes(); //获取对话框当前的参数值p.gravity = Gravity.START | Gravity.BOTTOM;DisplayMetrics outMetrics = new DisplayMetrics();getWindowManager().getDefaultDisplay(
2022-01-21 14:49:07
163
原创 git提交代码报错
Another git process seems to be running in this repository, e.g. an editor opened by ‘git commit’. P解决方案:进入项目文件夹下的 .git文件中(需要显示隐藏文件夹)删除index.lock文件即可。
2022-01-21 14:30:52
583
原创 设置Activity当弹出的位置
private void setWindowAttributes() {WindowManager.LayoutParams p = getWindow().getAttributes(); //获取对话框当前的参数值p.gravity = Gravity.START | Gravity.BOTTOM;DisplayMetrics outMetrics = new DisplayMetrics();getWindowManager().getDefaultDisplay(
2021-12-31 15:15:26
207
原创 android studio 修改主模块的名字
1.选中app主模块,鼠标右键,选中如图2.弹出框接着选择如下3.点击OK,在下图中输入新的模块名,点击OK4,修改settings.gradle 文件中rootProject.name和include对应的名字5.修改模块中build.gradle对应的applicationId的名字...
2021-11-22 09:51:31
2447
原创 动态设置LinearLayout按比例横向和纵向布局
1.设置两个1:1横向布局的TextViewLinearLayout.LayoutParams horizontalScale = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT, 1);//设置横向占比LinearLayout horizontalView = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.horizontal_view,
2021-11-19 10:40:27
3034
原创 动态设置TextView 或者view 距离右边的距离
/*** 设置view的位置* @param view 控件* @param right 距离右边的距离*/public static void settingViewPosition(View view,int right){ConstraintLayout.LayoutParams modeTvParams = (ConstraintLayout.LayoutParams) view.getLayoutParams();modeTvParams.rightMargin = right;v
2021-11-18 10:24:23
673
原创 Abort message: ‘invalid pthread_t 0x822be970 passed to libc‘报错导致闪退
在c++中连续两次调用pthread_join,导致线程在未创建时进行销毁,导致闪退,解决方法,增加判断在线程未创建时,不能调用pthread_join,参考大神的文章:https://blog.youkuaiyun.com/lei7143/article/details/90903252...
2021-08-11 14:53:54
1052
原创 IDEA 路径都是对的 运行Tomcat报错
IDEA 路径都是对的 运行Tomcat报错 There is no configured/running web-servers found! Please, run any web-configuration and hit the Refresh button!解决方法:1.点击箭头处2.点击箭头处3.点击箭头处4.点击ok重启tomcat
2021-04-29 10:27:16
206
SSLSocket TCP服务器端WPF C#测试代码
2025-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1