首页 文章 新番
动漫 学习 生活 日记 书籍 服务器 Bing
  • 从零开始到下载世界:Tracker服务器和DHT网络

    ##如何获取下载客户端(Peer)将下载同一个资源的客户端视为Peer,开始下载的时候第一个任务就是获取Peer,越多越好,越优质越好。这时我们就需要从Tracker服务器和DHT网络中获取其他Peer。##什么是Tracker服务器Tracker服务器可以使用UDP/HTTP协议通过资源特征码(InfoHash)获取Peer的地址和端口。Tracker服务器很多时候都连接不上,所以使用优质的Tracker非常重要。[HTTPTracker](https://wiki.theory.org/index.php/BitTorrentSpecification)[代码实现](https://gitee.com/acgist/snail/blob/master/snail/src/main/java/com/acgist/snail/net/torrent/tracker/HttpTrackerSession.java)[UDPTracker](http://www.bittorrent.org/beps/bep_0015.html)[代码实现](https://gitee.com/acgist/snail/blo...

    2021年06月10日 Tracker DHT
  • 从零开始到下载世界:种子文件

    ##种子文件作用种子文件主要用来描述文件信息:文件名称、大小、校验,还有如何获取下载客户端的Tracker服务器[从零开始到下载世界](https://www.acgist.com/article/588.html)

    2021年06月10日 种子文件
  • 从零开始到下载世界:BT入门

    ##什么是BT?简单一点来说就是P2P文件传输协议,就是用户和用户之间进行文件分享。用户下载的同时会向其他用户上传已经下载的数据,所以和FTP、HTTP这些协议相比,下载(分享)越多下载越快。详细参见:[BitTorrent](https://baike.baidu.com/item/BitTorrent/142795)##如何实现BT协议?BT协议里面其实包含很多协议,这些协议你可以在[BitTorrent.org](http://bittorrent.org/beps/bep_0000.html)查看。这里面有非常多的协议,这些协议有不同的状态:最终、接收、草稿、废弃。当然这些协议不是需要全部实现,可以选择实现必须的协议即可,还可以自定义协议。查看[蜗牛实现协议](https://gitee.com/acgist/snail/blob/master/docs/PROTOCOL.md)后面基本上会按照[BitTorrent.org](http://bittorrent.org/beps/bep_0000.html)里面的协议顺序进行逐个讲解如何实现BT协议。[从零开始到下载世界](https://www.a...

    2021年06月09日 BT BitTorrent
  • 手机摄像头应用

    [调用摄像头拍照](//www.acgist.com/demo/photo/index.html):调用摄像头直接拍照[调用摄像头获取人脸数据](//www.acgist.com/demo/face/index.html):调用摄像头连续获取几组人脸数据(前置摄像头)**注意:摄像头调用需要使用https协议,http测试只能使用localhost,不能使用IP地址。**

    2021年05月18日 HTML5 摄像头
  • Java性能分析工具

    jconsole:JDK自带监控一些GC、内存、线程、CPU等等信息。jvisualvm:JDK1.8以前自带功能和jconsole差不多,但是显示更加丰富。jmc:JDK1.8以前自带下载地址:[https://jdk.java.net/jmc/](https://jdk.java.net/jmc/)或者使用:[https://www.oracle.com/java/technologies/javase/products-jmc8-downloads.html](https://www.oracle.com/java/technologies/javase/products-jmc8-downloads.html)更加丰富的监控内容,推荐使用。此外还有一些常用命令:jps、jcmd、jmap、pmap、jinfo、jstack、valgrind、gperftools等等```jpsjcmdpidnamejmap-histo:livepidpmappidjinfopidjstackpid```##jcmd参数```Compiler.CodeHeap_AnalyticsCompiler.codecacheCo...

    2021年05月14日 Java
  • Apache Base64工具注意事项

    主要就是两种写法:```javaBase64.encodeBase64String(byte[])newString(Base64.encodeBase64(byte[]))```主要问题就是上面写法会有换行符,下面没有换行符。

    2021年05月08日 Apache Base64
  • Shiro和SpringBoot导致@Cacheable失效

    使用`shiro-spring-boot-starter`做权限控制,但是发现导致`@Cacheable`失效了。这时需要添加配置:```java@BeanpublicDefaultAdvisorAutoProxyCreatordefaultAdvisorAutoProxyCreator(){DefaultAdvisorAutoProxyCreatordefaultAdvisorAutoProxyCreator=newDefaultAdvisorAutoProxyCreator();defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);//defaultAdvisorAutoProxyCreator.setUsePrefix(true);returndefaultAdvisorAutoProxyCreator;}```或者直接添加配置:```javaspring.aop.proxy-target-class=true```还有一个问题也能使用这个解决:```javaorg.springframework.beans.factory.Unsatisfi...

    2021年04月22日 Shiro SpringBoot @Cacheable
  • shields动态生成Git项目徽章

    项目地址:[https://shields.io/](https://shields.io/)之前都是用的shields提供的一些build、version这些,但是码云就用不了。本来今天想要重新做一个的,但是发现原来还可以动态生成。格式:```https://img.shields.io/badge/dynamic/json?url=&label=&query=<$.DATA.SUBDATA>&color=&prefix=&suffix=https://img.shields.io/badge/dynamic/xml?url=&label=&query=&color=&prefix=&suffix=https://img.shields.io/badge/dynamic/yaml?url=&label=&query=<$.DATA.SUBDATA>&color=&prefix=&suffix=```比如码云stars:```https://img.shields.i...

    2021年03月03日 shields github gitee
  • 软件URL Scheme

    ####微信URLScheme[https://www.zhihu.com/question/30616809](https://www.zhihu.com/question/30616809)####支付宝URLScheme[https://www.jianshu.com/p/ebaedd551365](https://www.jianshu.com/p/ebaedd551365)[https://ld246.com/article/1596449463334](https://ld246.com/article/1596449463334)

    2021年02月24日 URL Scheme
  • Java新版switch

    ##使用箭头符号可以省略`break`##使用`yield`可以有返回值不能和`return`一起使用,箭头符号直接跟值可以省略`yield`。*return:跳出方法*break:跳出switch*yield:跳出switch*->:跳出switch测试代码:```javapublicinttestSwitch(intkey){System.out.println("----------------1");switch(key){case1:System.out.println("1");break;case2:System.out.println("2");break;case3:case4,5:System.out.println("3");break;default:System.out.println("default");break;}System.out.println("----------------2");switch(key){case1:System.out.println("fallthrough=1");case2:System.out.println("fallthroug...

    2021年02月23日 Java switch
  • github actions windows环境变量

    多个步骤之间传递变量:```yml#获取版本echo"version=${GITHUB_REF##*/}">>$GITHUB_ENV```但是window获取不到,需要使用下面的写法:```yml#获取版本$version="${{github.ref}}".substring("refs/tags/".length)echo"version=$version"|Out-File-FilePath$env:GITHUB_ENV-Encodingutf8-Append```还有就是upload-release-asset不能一次上传多个文件使用hub命令上传```ymlhubreleaseedit-asnail-${{env.version}}.${{env.suffix}}-m"${{env.version}}"${{env.version}}```>windows必须填写备注`-m`[完整打包脚本](https://github.com/acgist/snail/blob/master/.github/workflows/package.yml)话说Github的发行版本文件大小只有单个文...

    2021年02月21日 github actions windows
  • github actions windows tar错误

    最近使用github进行自动打包,但是发现tar在windows系统里面总是提示错误:```basetar.exe:./build/snail:Couldn'tfindfile:Invalidargumenttar.exe:Errorexitdelayedfrompreviouserrors.Error:Processcompletedwithexitcode1.```后来发现需要在参数后面添加星号:```base#错误命令tar-zcvfsnail-${{matrix.runs-on}}.tar.gz./build/snail/#正确命令tar-zcvfsnail-${{matrix.runs-on}}.tar.gz./build/snail/*```另外一个错误:```basetar:ExitingwithfailurestatusduetopreviouserrorsError:Processcompletedwithexitcode2.```这个是因为命令错误:```base#错误命令tar-cvfsnail-${{matrix.runs-on}}.tar-C./build/snail/*#正确命令t...

    2021年02月18日 github actions
  • 使用jpackage打包java程序

    最近发现java推出了一个打包工具,终于是有了官方的打包工具了。下面使用windows来做一个教程##安装wix下载地址:官网:[https://wixtoolset.org/](https://wixtoolset.org/)Github:[https://github.com/wixtoolset/wix3/releases](https://github.com/wixtoolset/wix3/releases)安装然后配置环境变量##打包命令```basejpackage--namesnail--input".\build\snail\"--main-jar"snail.javafx-1.7.11.jar"```Windows打包后如果需要管理员权限才能运行是因为少了配置参数`--win-per-user-install`##Ubuntu打包时提示没有`fakeroot`,解决办法:```bashsudoaptinstallalien```##CentOS打包时提示`错误:类型[rpm]无效或不受支持`,解决办法:```bashyuminstallrpm-buildredhat-rpm-config`...

    2021年02月18日 jpackage
  • cordova打包app

    环境:```basenpminstall-gcordovacordovacreateacgistcom.acgistacgistcordovaplatformaddandroid--savecordovaplatformlscordovarequirements```指定版本:```basecordovaplatformaddandroid@^6--save```打包:```basecordovabuildcordovabuild-releaseandroid```签名:```basekeytool-genkeypair-aliasacgist.keystore-keyalgRSA-validity3650-keystoreacgist.keystorejarsigner-verbose-keystoreacgist.keystore-signedjarapp-release-sign.apkapp-release-unsigned.apkacgist.keystore```下载gradle太慢可以使用迅雷下载然后添加到路径`C:\Users\28954\.gradle\wrapper\dists`的相应目录...

    2021年01月28日 cordova
  • JavaFX启动异常

    错误日志:```javaExceptioninthread"WindowsNativeRunloopThread"java.lang.NoSuchMethodError:atjavafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(NativeMethod)atjavafx.graphics/com.sun.glass.ui.Screen.initScreens(Screen.java:412)atjavafx.graphics/com.sun.glass.ui.Application.lambda$run$1(Application.java:152)atjavafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(NativeMethod)atjavafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)atjava.base/ja...

    2021年01月11日 JavaFX
  • elasticsearch错误

    错误日志:```java[2021-01-11T10:44:40,184][WARN][o.e.x.m.e.l.LocalExporter][node-1]unexpectederrorwhileindexingmonitoringdocumentorg.elasticsearch.xpack.monitoring.exporter.ExportException:org.elasticsearch.common.ValidationException:ValidationFailed:1:thisactionwouldadd[1]totalshards,butthisclustercurrentlyhas[3693]/[1000]maximumshardsopen;atorg.elasticsearch.xpack.monitoring.exporter.local.LocalBulk.lambda$throwExportException$2(LocalBulk.java:125)~[x-pack-monitoring-7.3.0.jar:7.3.0]atjava.util.stream.Referenc...

    2021年01月11日 elasticsearch
  • Java自带HttpClient下载CPU占用过高

    下载HTTP协议没有问题,下载HTTPS协议的时候CPU一直维持在20%-30%左右。升级到JDK15问题依旧存在。```java"Snail-Thread-HTTP-Client"#25daemonprio=5os_prio=0cpu=216656.25mselapsed=272.70stid=0x0000024e34a84800nid=0x3a68runnable[0x00000066085fd000]java.lang.Thread.State:RUNNABLEatcom.sun.crypto.provider.GHASH.blockMult(java.base@11.0.2/GHASH.java:97)atcom.sun.crypto.provider.GHASH.processBlock(java.base@11.0.2/GHASH.java:186)atcom.sun.crypto.provider.GHASH.processBlocks(java.base@11.0.2/GHASH.java:236)atcom.sun.crypto.provider.GHASH.update(java.base...

    2021年01月07日 Java HttpClient
  • EChart折线图Y轴BUG

    EChart折线图Y轴坐标数值显示错误,只需要把`series`的`stack`属性删掉就正常了。

    2021年01月07日 EChart
  • 阿里云yum镜像

    今天改了一下服务器配置,好久没有更新过服务器的软件了,然后发现以前的yum源用不了了。```http://mirrors.cloud.aliyuncs.com/centos/6/os/x86_64/repodata/repomd.xml:[Errno14]PYCURLERROR22-"TherequestedURLreturnederror:404NotFound"尝试其他镜像。Toaddressthisissuepleaserefertothebelowwikiarticlehttps://wiki.centos.org/yum-errorsIfabovearticledoesn'thelptoresolvethisissuepleaseusehttps://bugs.centos.org/.http://mirrors.aliyun.com/centos/6/os/x86_64/repodata/repomd.xml:[Errno14]PYCURLERROR22-"TherequestedURLreturnederror:404NotFound"尝试其他镜像。```原来阿里云的镜像地址改了:[https:...

    2021年01月06日 yum aliyun
  • 常用命令总结

    ##查看当前Java进程```jps```##查看Java线程快照```jstackpid```##查看Java内存快照```jmap-histo:livepid```##内存快照时间统计```bashcatfile|grepcpu=|grep-Po'(cpu=\d+\.\d+ms)'|grep-Po'(\d+\.\d+)'|awk'{sum+=$1}END{printsum}'```##关闭JIT```java-Djava.compiler=NONE```##提交Sonar```basemvnsonar:sonar-D"sonar.projectKey=snail"-D"sonar.host.url=http://localhost:9000"-D"sonar.login=token"```##消息分类统计```basecatsnail.log.*|grep-a处理piece消息|grepTCP|wc-l;catsnail.log.*|grep-a处理piece消息|grepUTP|wc-l;catsnail.log.*|grep-a发送piece消息|grepTCP|wc-l;catsnail.log.*...

    2021年01月06日 Java jstack jmap jps Linux
1...78910111213...31

关于 ACGIST

Copyright © 2013-2025 ACGIST.COM. All Rights Reserved.