自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

nukix

nothing is improbable...

  • 博客(97)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android 获取 uid

在 Android 系统中, 存在 uid、pid 等概念, uid 即用户 ID, pid 即进程 ID。uid 每个进程可能会重复, pid 每个进程唯一。

2024-04-13 10:28:08 496 2

原创 使用 Docker Compose 部署邮件服务器

很多时候为了方便, 我们都直接使用第三方邮箱进行收发邮件。但第三方邮箱有些要求定期修改密码,有些限制发邮箱的次数, 对于一些个人和企业来说, 有自己的域名和服务器为什么不自己搭建一个邮件服务器呢?因此, 笔者在这记录自己学习并且搭建邮箱服务器的步骤与过程。本文主要使用进行搭建, 其中一些资料和链接, 有需要详细了解的, 请查看参考文献。

2024-04-02 20:37:32 1678

原创 使用 Docker Compose 快速搭建监控网站 uptime-kuma

是一个精美的托管监控工具, 项目发布在GitHub上, 查看官方的 Demo 可以点击这里。

2024-03-15 23:06:12 635 1

原创 使用 Docker Compose 部署 Halo 2.x 与 MySQL

本文主要介绍使用部署Halo 2.x和MySQL, 主要针对小白。有一定基础的, 可以直接去官网查看。

2023-12-30 05:15:20 1371

原创 Linux 登陆失败查询

最近笔者购买的 VPS 中发现一堆登陆失败信息, 因此写下本文记录登陆失败查询的步骤。如果不是自己登陆失败, 那么一定是黑客使用暴力算法不断的尝试账号和密码, 如果不采取措施, 那么密码账号和密码就有概率被跑出来, 服务器也将被盗。

2023-12-24 23:59:05 608 1

原创 Linux 配置 swap 区

很多时候我们需要配置swap主要的原因是物理内存太贵了, 服务器也是一样, 当内存不够用时, 系统会卡死, 因此我们宁愿牺牲一点性能也要让系统正常运行。当然, 在系统物理内存足够的条件下, 建议关闭swap, 内存运行速度远大于硬盘, 而swap实际上在硬盘上分配一些空间来充当内存的作用。

2023-12-24 06:52:05 542

原创 Linux 内核与架构速查

本文主要记录查询 Linux 计算机的内核与架构, 用于下载对应架构的第三方软件。

2023-08-18 00:08:07 1598

原创 Java minecraft(我的世界)环境部署

本文主要讲解我的世界的环境搭建, 包括搭建服务端和客户端, 为了避免不必要的麻烦最好是遵守, 本教程搭建的环境可支持局域网连接多人游戏。

2023-08-17 23:40:12 1381

原创 群晖安装 frpc

写该文章之前, 我尝试过使用 “任务计划” 设置开机启动frpc, 但是失败了。最后尝试使用docker开机启动frpc才成功, 因此本文主要介绍使用docker使用frpc。

2023-08-16 23:09:29 1110

原创 FRP 实现内网穿透

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

2023-08-14 23:26:51 446

原创 群晖包管理工具 synopkg

本文主要介绍群晖的包管理工具synopkg,类似于Ubuntu中的apt-getCentOS中的yum。该命令需要在命令行中执行, 需要在控制面板->终端机和 SNMP->启动 SSH 功能, 最后使用ssh进行远程登陆。如需切换到Root权限, 使用sudo -i密码为群晖的管理密码。

2023-01-28 04:02:51 4403 1

原创 群晖(docker图形化界面)使用 SpeedTest 测速

本文主要介绍在群晖中安装speedtest进行网络测速。

2023-01-28 03:12:38 11815

原创 Ubuntu 安装 g++ 和 CMake

由于编写 C/C++ 多数依赖于编译器, 反而忽略了使用命令行进行编译, 因此在这记录使用 g++ 和 CMake 进行编译打包的步骤。g++ 是 GNU 开发的 C++ 编译器,是 GCC(GNU Compiler Collection)GNU 编译器套件的组成部分。gcc 是 GNU 的 C 编译器。CMake 是个一个开源的跨平台自动化建构系统,用来管理软体建置的程序,并不依赖于某特定编译器,并可支援多层目录、多个应用程式与多个函式库。

2023-01-22 04:37:55 8508 1

原创 Markdown 编辑器速查表

由于经常使用 Markdown 编辑器, 每次写有些符号忘记了, 因此在这里整理一份速查表, 如有遗漏, 欢迎留言。

2022-12-21 12:39:31 607

原创 CentOS docker 和 docker compose 安装

Docker 是一个用于开发,交付和运行应用程序的开放平台。Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。

2022-11-29 12:44:51 609

原创 网页颜色搭配表及颜色搭配技巧

本文主要介绍网页颜色的一些搭配技巧, 只提供建议。

2022-11-20 04:29:54 1411

原创 Mac brew 安装与使用

本文主要以 jadx 软件为例介绍 brew 的安装以及常用的使用命令, Homebrew 是一个软件管理工具, 类似于应用商城。

2022-11-19 21:40:51 2562

原创 macos 环境变量 source 重启后失效

macos 环境变量一般我们都保存到 ~/.bash_profile 中, 并且使用 source ~/.bash_profile 令它生效, 但重启后环境变量就失效了, 需要重新执行 source ~/.bash_profile,因此本文给出解决方案。

2022-11-19 21:11:07 2086

转载 【转载】Java NIO系列教程(十三)Java NIO与IO

Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取。同样,如果你需要维持许多打开的连接到其他计算机上,如P2P网络中,使用一个单独的线程来管理你所有出站连接,可能是一个优势。Java NIO的选择器允许一个单独的线程来监视多个输入通道,你可以注册多个通道使用一个选择器,然后使用一个单独的线程来“选择”通道:这些通道里已经有可以处理的输入,或者选择已准备写入的通道。你所知道的是,该缓冲区包含一些字节,这使得处理有点困难。

2022-11-16 02:53:37 146

转载 【转载】Java NIO系列教程(十二)Pipe

Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。read() 方法返回的 int 值会告诉我们多少字节被读进了缓冲区。通过Pipe.open()方法打开管道。要向管道写数据,需要访问sink通道。

2022-11-16 02:31:10 161

转载 【转载】Java NIO系列教程(十一)Java NIO DatagramChannel

可以将DatagramChannel“连接”到网络中的特定地址的。由于UDP是无连接的,连接到特定地址并不会像TCP通道那样创建一个真正的连接。也不会通知你发出的数据包是否已收到,因为UDP在数据传送方面没有任何保证。Java NIO中的DatagramChannel是一个能收发UDP包的通道。当连接后,也可以使用read()和write()方法,就像在用传统的通道一样。

2022-11-16 02:28:05 369

转载 【转载】Java NIO系列教程(十)非阻塞式服务器

即使你知道Java NIO 非阻塞的工作特性(如Selector,Channel,Buffer等组件),但是想要设计一个非阻塞的服务器仍然是一件很困难的事。非阻塞式服务器相较于阻塞式来说要多上许多挑战。本文将会讨论非阻塞式服务器的主要几个难题,并针对这些难题给出一些可能的解决方案。查找关于非阻塞式服务器设计方面的资料实在不太容易,所以本文提供的解决方案都是基于本人工作和想法上的。如果各位有其他的替代方案或者更好的想法,我会很乐意听取这些方案和想法!

2022-11-16 02:20:31 259

转载 【转载】Java NIO系列教程(九) ServerSocketChannel

Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的 ServerSocket 一样。当 accept()方法返回的时候,它返回一个包含新进来的连接的 SocketChannel。在非阻塞模式下,accept() 方法会立刻返回,如果还没有新进来的连接,返回的将是 null。

2022-11-16 01:27:33 128

转载 【转载】Java NIO系列教程(八) SocketChannel

如果 SocketChannel 在非阻塞模式下,此时调用 connect(),该方法可能在连接建立之前就返回了。可以设置 SocketChannel 为非阻塞模式(non-blocking mode).设置之后,就可以在异步模式下调用 connect(), read() 和 write() 了。写数据到 SocketChannel 用的是 SocketChannel.write() 方法,该方法以一个 Buffer 作为参数。非阻塞模式下,write()方法在尚未写出任何内容时可能就返回了。

2022-11-16 01:22:47 424

转载 【转载】Java NIO系列教程(七) FileChannel

因为无法保证 write() 方法一次能向 FileChannel 写入多少字节,因此需要重复调用 write() 方法,直到 Buffer 中已经没有尚未写入通道的字节。出于性能方面的考虑,操作系统会将数据缓存在内存中,所以无法保证写入到FileChannel里的数据一定会即时写到磁盘上。如果将位置设置在文件结束符之后,然后向通道中写数据,文件将撑大到当前位置并写入数据。使用FileChannel.write()方法向FileChannel写数据,该方法的参数是一个Buffer。

2022-11-16 01:20:19 440

转载 【转载】Java NIO系列教程(六) Selector

如果调用select()方法,因为有一个通道变成就绪状态,返回了1,若再次调用select()方法,如果另一个通道就绪了,它会再次返回1。如果对第一个就绪的channel没有做任何操作,现在就有两个就绪的通道,但在每次select()方法调用之间,只有一个通道就绪了。事实上,可以只用一个线程处理所有的通道。这里有一个完整的示例,打开一个Selector,注册一个通道注册到这个Selector上(通道的初始化过程略去),然后持续监控这个Selector的四种事件(接受,连接,读,写)是否就绪。

2022-11-16 01:14:43 158

转载 【转载】Java NIO系列教程(五) 通道之间的数据传输

FileChannel的transferFrom()方法可以将数据从源通道传输到FileChannel中(译者注:这个方法在JDK文档中的解释为将字节从给定的可读取字节通道传输到此通道的文件中)。如果源通道的剩余空间小于 count 个字节,则所传输的字节数要小于请求的字节数。在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。是不是发现这个例子和前面那个例子特别相似?

2022-11-16 01:00:44 142

转载 【转载】Java NIO系列教程(四) Scatter/Gather

scatter / gather经常用于需要将传输的数据分开处理的场合,例如传输一个由消息头和消息体组成的消息,你可能会将消息体和消息头分散到不同的buffer中,这样你可以方便的处理消息头和消息体。聚集(gather)写入Channel是指在写操作时将多个buffer的数据写入同一个Channel,因此,Channel 将多个Buffer中的数据“聚集(gather)”后发送到Channel。因此,Channel将从Channel中读取的数据“分散(scatter)”到多个Buffer中。

2022-11-15 23:59:26 98

转载 【转载】Java NIO系列教程(三) Buffer

初始的 position 值为0.当一个 byte、long 等数据写到 Buffer 后, position 会向前移动到下一个可插入数据的 Buffer 单元。作为一个内存块,Buffer 有一个固定的大小值,也叫“capacity”.你只能往里写 capacity 个 byte 、long,char等类型。当将 Buffer 从写模式切换到读模式,position 会被重置为0. 当从 Buffer 的 position 处读取数据时,position 向前移动到下一个可读的位置。

2022-11-15 23:54:23 103

转载 【转载】Java NIO系列教程(二) Channel

注意 buf.flip() 的调用,首先读取数据到 Buffer,然后反转 Buffer,接着再从 Buffer 中读取数据。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。DatagramChannel 能通过 UDP 读写网络中的数据。SocketChannel 能通过 TCP 读写网络中的数据。

2022-11-15 23:48:03 90

转载 【转载】Java NIO系列教程(一) Java NIO 概述

虽然 Java NIO 中除此之外还有很多类和组件,但在我看来, Channel,Buffer 和 Selector 构成了核心的 API。其它组件,如 Pipe 和 FileLock,只不过是与三个核心组件共同使用的工具类。其它组件会在单独的章节中讲到。一旦这个方法返回,线程就可以处理这些事件,事件的例子有如新连接进来,数据接收等。如果你的应用打开了多个连接(通道),但每个连接的流量都很低,使用 Selector 就会很方便。与这些类一起的有一些有趣的接口,但为简单起见,我尽量在概述中不提到它们。

2022-11-15 23:41:22 123

原创 Android Studio 新版本 Logcat 速查

本文主要介绍 Android Studio 新版本的 Logcat 用法。

2022-09-28 20:54:32 8222 6

原创 Java 线程详解

本文主要介绍 Java 的 Thread 类一些用法。

2022-09-25 17:11:44 494

原创 【CSDN线上竞赛第六期竞赛 】参赛介绍

CSDN 在每两个星期左右会举办一次线上竞赛, 到目前为止已经举办第六期。竞赛主要以选择题、编程题为主, 满分为 100 分, 支持Java、C、C++、C#、Python、JavaScript、lua、go等编程语言。大赛主要由CSDN平台提供, 创立了竞赛奖和创作奖。

2022-09-25 12:37:16 1464 1

原创 Android Studio 自动生成 Gson bean

很多时候, 把对象转为 Json 或是把 Json 转为对象时, 需要创建 Gson Bean 的实体类, 但一个一个创建会很麻烦, 所以有时候需要借助一些工具。

2022-09-07 21:48:38 1741

原创 Android 使用 TextView 显示网页内容

本文主要介绍 Mezzanine 和 jsoup。其中 Mezzanine 用于将 html/js 页面转成字符串;jsoup 用于解析 html 代码。

2022-08-28 15:47:31 1267

原创 Docker 基本命令

记录一些 docker 的命令, 需要用的时候直接查。

2022-06-20 16:53:50 118

原创 Android 接收 App 安装卸载更新

本篇文章主要介绍如何监听 APP 的安装、卸载和更新的广播。

2022-03-31 11:31:13 2861

原创 CentOS nexus搭建Maven服务

本篇文章主要介绍如何在 CentOS 系统上使用 nexus 搭建 Maven 服务器。

2021-12-25 19:31:16 1267

原创 CentOS 使用 SpeedTest 测速

CentOS 使用 SpeedTest 测速

2021-12-25 15:14:43 9506 2

exception stdexcept streambuf 头文件

解决 fatal error C1083: Cannot open include file: 'streambuf': No such file or directory 问题

2017-10-29

java 调用 sqlite 数据库

sqlite 是一个轻量化的数据库, 多数在移动设备中使用, 该例子在 eclipse 中使用java 调用。

2016-05-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除