- 博客(23)
- 资源 (3)
- 收藏
- 关注

转载 P2P技术:NAT穿越(打洞)方案详解
目录1、内容概述2、反向链接技术:一种特殊的P2P场景(通信双方中只有一方位于NAT设备之后)3、基于UDP协议的P2P打洞技术详解3.1 原理概述3.2 典型P2P情景1: 两客户端位于同一NAT设备后面(即相同内网中)3.3 典型P2P情景2: 两客户端位于不同的NAT设备后面(分属不同的内网)3.4 典型P2P情景3: 两客户端位于两层(或多层)NAT设备之后(...
2018-12-13 11:01:14
1170

转载 快速理解NAT技术的使用
1、每台电脑都必须要一个公网IP吗?答案:不是。我们都知道,IPv4中的IP地址的数量是有限的(所以现在都在搞IPv6嘛),每次把一部分地址分配出去,那么就意味着能够用来分配的IP地址就更少了,而且随着现在手机,电脑等的快速发展,如果每个手机或者电脑都要求一个IP地址,那么显然IP地址是不够用的。为了解决这个问题,我们可以采取这样的策略:例如对于一个公司来说,每个公司都会有一个属于自己公司的内...
2018-12-13 10:44:23
773

转载 快速理解P2P技术中的 STUN协议
目录1、STUN协议介绍1.1 STUN基本介绍1.2 STUN的检测过程1.3 STUN协议的判断过程1、STUN协议介绍 1.1 STUN基本介绍STUN是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器...
2018-12-12 18:26:50
1415

转载 快速理解P2P技术中的 NAT穿透
目录1、基础知识1.1 什么是NAT?1.2 为什么会有NAT?1.3 NAT有什么优缺点?2、NAT的实现方式2.1 静态NAT2.2 NAPT3、NAT的主要类型3.1 完全锥型NAT(Full Cone NAT,后面简称FC)3.2 受限锥型NAT(Restricted Cone NAT)3.3 端口受限型NAT(Port Restricted C...
2018-12-12 18:26:06
851
原创 Java动态代理详解:JDK和CGLIB的区别和实现
目录一、 JDK和CGLIB动态代理原理二、InvocationHandler接口详解三、Proxy类详解四、 代码示例五、JDK和CGLIB动态代理总结一、 JDK和CGLIB动态代理原理简单来说: JDK动态代理只能对实现了接口的类生成代理,而不能针对类; CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法(继承);1、JDK动...
2018-12-18 16:43:29
3238
1
原创 RPC基础入门:原理介绍和简单示例
一、RPC1. RPC是什么2. 为什么要用RPC? 二、RPC的原理和框架三、Java中常用的RPC框架四、RPC和消息队列的差异五、RPC框架的核心技术点六、RPC框架简易实现及其实例分析七、关于RPC框架的若干问题说明一、RPC1. RPC是什么RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过...
2018-12-18 14:38:50
4538
原创 Android —— inflate( )使用
1. LayoutInflater基本用法LayoutInflater的基本用法,首先需要获取到LayoutInflater的实例,有两种方法可以获取到第一种写法如下:LayoutInflater layoutInflater = LayoutInflater.from(context);第二种写法,也可以完成同样的效果:LayoutInflater layoutInfl...
2018-12-07 16:29:40
1959
原创 Android中src和background区别
ImageView中XML属性src和background的区别:background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用Android:scaleType控制图片的缩放方式,示例代码如...
2018-12-06 22:05:05
286
转载 Android代码里设置ImageView的src和background及源码分析
Table of Contents1. 热身案例2. 源码分析:src与background两种属性设置的方法入手setImageResource()方法入手src属性setBackgroundResource()方法入手Background属性3. 总结设置ImageView的src:image.setImageDrawable(getResources().get...
2018-12-06 22:01:24
3663
1
原创 Protobuf——Windows系统下的【.proto】文件使用
一、什么是protocol buffers Protocol buffers是一个灵活的、高效的、自动化的用于对结构化数据进行序列化的协议,与XML相比,Protocol buffers序列化后的码流更小、速度更快、操作更简单。你只需要将要被序列化的数据结构定义一次(译注:使用.proto文件定义),便可以使用特别生成的源代码(译注:使用protobuf提供的生成工具)轻松的使用...
2018-11-29 15:27:27
3041
原创 字符串的使用
几个常用的格式转换符:%s : 字符串,如"hello"%c : 字符,如'a'%b : 布尔类型,如true或者false%d : 十进制整型数,如119%x : 十六进制整型数,如f0%f : 十进制浮点数,java在这里不像c有%f/%lf/%ld等区分浮点与双精度,java的float类型和double类型都用%f%0nd : n是十进制整数,表示这里...
2018-11-13 09:28:44
261
原创 Android播放器 【github开源项目】
1.ijkplayer项目地址:https://github.com/Bilibili/ijkplayer介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Android/iOS 视频播放器。实现了跨平台功能,API 易于集成;编译配置可裁剪,方便控制安装包大小;支持硬件加速解码,更加省电;提供 Android 平台下应用弹幕集成的解决方案。2.ExoPl...
2018-11-09 16:32:59
214
原创 Android 5.0,6.0,7.0,8.0新特性整理
目录Android 5.0行为变更Android 6.0行为变更Android 7.0行为变更Android 8.0二十大新特性,这些地方像极了iOS?Android 8.0 新变化汇总Android 5.0行为变更API级别:211. Android Runtime(ART) 大多数 Android 应用无需任何更改就可以在 ART 下工作。不过,...
2018-11-09 15:51:32
994
原创 Android分包方案multidex
Android分包方案multidex1.对于功能越来越复杂的app的两大问题 一:我们自己应用的方法数超过了65536 我们所说的方法数限制,这个方法数包括了jar包,框架,还有我们自己应用的代码,当我们应用的代码超过65536时,结果如下: 我们看到,显示我们方法的引用是65579.而引用数最大是65536,建议我们开启分包方案。 二:我们应用的方法数没有超过655...
2018-11-09 11:30:12
268
原创 Android性能优化----经典总结
Android 性能优化典范(一):主要从 Android 的渲染机制、内存与 GC、电量优化三个方面展开,介绍了 Android 中性能问题的底层工作原理,以及如何通过工具来找出性能问题及提升性能的建议。Android 性能优化典范(二):主要内容为:电量优化、网络优化、Android Wear 上如何做优化、使用对象池来提高效率、LRU Cache、Bitmap 的缩放、缓存、重用、PNG...
2018-11-09 10:47:53
203
原创 Android apk反编译-----【附:反编译工具】
Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或者平板电脑下载下来进行安装。正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了。但是我们通过网上提供了一些工具,还是可以将apk进行反编译的,apk反编译之后,我们就可以看到开发这个应用使用的资源文件(图片)、layout、样式、相关的实现代码...
2018-11-09 10:34:54
346
原创 电脑网速被限制的查看及解决
Windows有自带的功能,方法是:1. 进入DOS就是命令提示符(管理员),以管理员身份运行 输入命令:netsh interface ipv4 show subinterfaces 查看是否有本地连接和网络连接 接着看运行结果里的所有列,如下图,MTU列的值是否是1500,如果不是1500,表示网络已被限制。2. 可以调整网络连接速率 输入:...
2018-10-26 17:19:42
11209
原创 Socket多客户端通信
服务端首先构造的是ServerSocket 对象,传入构造方法中的参数是端口号,同需连接客户端的端口号一致。接下来通过ServerSocket 对象的accept()方法来获取Socket对象,此方法被称为阻塞方法,该一直在运行,等待客户端发送的Socket连接请求,若未收到请求,accept()方法就一直在循环执行,始终不返回结果,直到收到请求后,accept()方法会返回发送请求的So...
2018-10-18 18:10:49
470
原创 多线程实现UDP协议发送、接收数据
放码过来吧! public class ChatRoom { public static void main(String[] args) throws SocketException { DatagramSocket sendSocket = new DatagramSocket(); DatagramSocket recvSocket = ne...
2018-10-18 17:53:02
3283
原创 Android 内存泄漏问题
1. 内部类引用导致Activity的泄露 在Android中内部类的引用最常见的是handler,我们经常会这样写:private Handler handler = new Handler(){ @Override public void handlerMessage(Message msg){ }} 但这样写会造成严重的内存泄漏,编写中会有如...
2018-10-18 17:09:05
211
原创 handler机制的内存泄漏问题(handler + WeakReference优化Activity)
handler机制导致内存泄漏的原因: Activity在被结束之后,MessageQueue并不会随之被结束,如果这个消息队列中存在msg,则导致持有handler的引用,但是又由于Activity被结束了,msg无法被处理,从而导致永久持有handler对象,handler永久持有Activity对象,于是发生内存泄漏 Android引用对象的四种类型:强引用、软引用、...
2018-10-16 21:59:34
633
原创 Android操作系统自带功能部分介绍
需要通过intent(意图)对象,调用android系统自带功能:例如:调用android自带拨号器Intent intent = new Intent();intent.setAction("android.intent.action.CALL");intent.setData(Uri.parse("tel:" + phoneNumber));startActivity(inte...
2018-10-16 21:40:36
835
原创 FIR数字滤波器的GUI设计
1. 窗函数法设计FIR数字滤波器的GUI设计程序清单:function run_Callback(hObject,eventdata,handles)fp1=str2double(get(handles.edit_fp1,'String'));fs1=str2double(get(handles.edit_fs1,'String'));fp2=str2double(get(handl...
2018-06-22 17:46:14
2926
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人