网络监听

GitHub标星4.6K+!手写一款基于MVVM模式开发框架,完美实现事件与数据源绑定!

删除回忆录丶 提交于 2020-04-08 14:03:26
前言 目前,Android流行的MVC、MVP模式的开发框架很多,然而一款基于MVVM模式开发框架却很少。MVVMHabit是以谷歌DataBinding+LiveData+ViewModel框架为基础,整合Okhttp+RxJava+Retrofit+Glide等流行模块,加上各种原生控件自定义的BindingAdapter,让事件与数据源完美绑定的一款容易上瘾的实用性MVVM快速开发框架。从此告别findViewById(),告别setText(),告别setOnClickListener()... 框架流程 框架特点 快速开发 只需要写项目的业务逻辑,不用再去关心网络请求、权限申请、View的生命周期等问题,撸起袖子就是干。 维护方便 MVVM开发模式,低耦合,逻辑分明。Model层负责将请求的数据交给ViewModel;ViewModel层负责将请求到的数据做业务逻辑处理,最后交给View层去展示,与View一一对应;View层只负责界面绘制刷新,不处理业务逻辑,非常适合分配独立模块开发。 流行框架 retrofit + okhttp + rxJava 负责网络请求; gson 负责解析json数据; glide 负责加载图片; rxlifecycle 负责管理view的生命周期;与网络请求共存亡; rxbinding 结合databinding扩展UI事件;

Android实时监听网络状态(2)

旧街凉风 提交于 2020-03-31 04:00:09
Android实时监听网络状态(1) 其实手机在网络方面的的监听也比较重要,有时候我们必须实时监控这个程序的实时网络状态,android在网络断开与连接的时候都会发出广播,我们通过接收系统的广播就可以实现网络的监听。 1、添加访问网络和获取网络状态的权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET" /> 2、新建一个Application类并继承android.app.Application 申明变量保存网络状态 package com.javen.application; import com.javen.netbroadcast.NetUtil; public class Application extends android.app.Application { private static Application mApplication; public static int mNetWorkState; public static synchronized Application getInstance() { return mApplication;

socket通信基础内容

亡梦爱人 提交于 2020-03-26 16:55:37
对 TCP/IP、 UDP、 Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问: 1. 什么是 TCP/IP、 UDP? 2. Socket在哪里呢? 3. Socket是什么呢? 4. 你会使用它们吗? 什么是 TCP/IP 、 UDP ? TCP/IP( Transmission Control Protocol/Internet Protocol)即传输控制协议 /网间协议,是一个工业标准的协议集,它是为广域网( WANs)设计的。 UDP( User Data Protocol,用户数据报协议)是与 TCP相对应的协议。它是属于 TCP/IP协议族中的一种。 这里有一张图,表明了这些协议的关系。 图 1 TCP/IP协议族包括运输层、网络层、链路层。现在你知道 TCP/IP与 UDP的关系了吧。 Socket 在哪里呢? 在图 1中,我们没有看到 Socket的影子,那么它到底在哪里呢?还是用图来说话,一目了然。 图 2 原来 Socket在这里。 Socket 是什么呢? Socket是应用层与 TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中, Socket其实就是一个门面模式,它把复杂的 TCP/IP协议族隐藏在 Socket接口后面,对用户来说,一组简单的接口就是全部,让 Socket去组织数据

2019-2020-2 网络对抗技术 20175217 Exp2 后门原理与实践

怎甘沉沦 提交于 2020-03-13 01:40:17
一、实验目标 清楚后门概念 会用nc获取远程主机的Shell 会用meterpreter 会启动后门 二、实验内容 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, 任务计划启动 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell 三、基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 当捡到一个U盘时,会尝试着插入自己的电脑,当U盘插入后后门可能进入系统 当下载一个软件时,后门可能同时被安装在你的系统中了 当你在网页上点击一个按钮时,后门可能会被安装在你的电脑里 例举你知道的后门如何启动起来(win及linux)的方式? 在开机的时候自启动(Windows注册表) 被设置了定时启动(Linux的crontab) 作为服务启动 被其他主机控制,从而启动 Meterpreter有哪些给你映像深刻的功能? 除了本次实验中完成的获取被控主机的录音、录像、截图、键盘输入记录等功能,还有从被控主机上对相关的文件进行下载和上传,远程操控目标机上的程序运行等功能。

网络分析:WireShark

久未见 提交于 2020-02-28 18:32:11
安装 WireShark 官网 过滤器 类别 显示过滤器模式 捕获过滤器模式 逻辑表达式 and:&& or:|| 成组:() 过滤实例 仅监听某域名 http.host == "qq.com" http.host contains qq.com 仅监听HTTP报文 tcp.port==80 仅抓取arp报文 eth.type ==0x806 仅监听ICMP报文 icmp 仅监听HTTP请求方法为POST的报文 http.request.method == "POST" 仅监听HTTP的URI请求为"/q.cgi"路径的报文 http.request.uri == "/q.cgi" 仅监听与某主机的通信[只抓取和博客园服务器的通信,src表示源地址,dst表示目标地址] ip.addr == 42.121.252.58 或者 ip.src==10.10.10.10 【多过滤条件:使用逻辑表达式】监听qq.com或者UDP报文 (http.host contains "qq.com") || udp 参考文献 Wireshark技巧-过滤规则和显示规则 wireshark过滤规则及使用方法 来源: https://www.cnblogs.com/johnnyzen/p/10793744.html

Android实时监听网络状态(2)

佐手、 提交于 2020-02-08 11:08:50
在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒。一般可以通过ConnectivityManager来完成该工作。 ConnectivityManager有四个主要任务: 1、监听手机网络状态(包括GPRS,WIFI, UMTS等) 2、手机状态发生改变时,发送广播 3、当一个网络连接失败时进行故障切换 4、为应用程序提供可以获取可用网络的高精度和粗糙的状态 当我们要在程序中监听网络状态时,只要一下几个步骤即可: 1、定义一个Receiver重载其中的onReceive函数,在其中完成所需要的功能,如根据WIFI和GPRS是否断开来改变空间的外观或者提示是否能访问网络 package com.bsharksdk.receiver; import com.bsharksdk.main.BSharkApi; import com.bsharksdk.ui.BSToast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; /** *

利用Reachability实现网络状态监听

荒凉一梦 提交于 2020-02-05 03:07:42
时刻检查设备的联网状态,并作出相应的处理,基本上是所有的联网程序需要考虑的问题,以前自己写个NSTimer 每多少卖哦循环一次,后来觉得这个思维有些不爽,就直接用Reachability来实现了 首先考虑要在每一个类都能用这个网络的判定结果,可以用一个单例写,怕麻烦的话 直接写在 AppDelegate也行。 .h的操作 @property ( strong , nonatomic ) Reachability *reachiability; @property ( assign , nonatomic ) BOOL isReachable;//是否可用 @property ( assign , nonatomic ) NetworkStatus status;//判定状态用的 .m里 // 开启网络状况的监听 [[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (reachabilityChanged:) name : kReachabilityChangedNotification object : nil ]; self .reachiability = [ Reachability reachabilityWithHostname : @"www.baidu.com"

iOS 网络状态监听和检查,

℡╲_俬逩灬. 提交于 2020-02-05 02:30:53
实现网络状态监听和监察网络状态,注意下面介绍两种方法都需要使用到第三方文件Reachability.h,和Reachability.m,这两个文件可以再第三方库ASIHttpRequest中得到,使用前引入头文件即可: #import "Reachability.h" 1.实时监听,这个方法下会启动一个Run loop 实时监听网络的状态。注意这里将hostReach声明为一个全局的变量。 //开启网络状况的监听 -(void)giveNetNotification{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; hostReach = [Reachability reachabilityWithHostName:@"www.baidu.com"];//可以以多种形式初始化 [hostReach startNotifier]; //开始监听,会启动一个run loop [self updateInterfaceWithReachability: hostReach]; } //监听到网络状态改变 - (void)

网络监听以及判断网络是否可用

南笙酒味 提交于 2020-02-04 19:26:38
网络监听: AndroidManifest中定义网络监听的 receiver : <receiver android:name=".receiver.ConnectionChangeReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter> </receiver>    定义网路监听的广播接受类: public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (!Utils.isNetworkConnected()) { NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancel(Constants.NOTIFICATION_SYNC); } } } 判断网络是否可用: public static

Android 设备监听网络状态变化

喜欢而已 提交于 2020-01-22 01:24:46
Android 网络状态的变化监听目前主要有两种方式,一种是通过 ConnectivityManager 网络连接管理类来注册监听网络状态回调,另一种则是通过广播来实现。 1、通过 ConnectivityManager 来实现 创建 ConnectivityManager 对象 ConnectivityManager connectivityManager = ( ConnectivityManager ) application . getSystemService ( Context . CONNECTIVITY_SERVICE ) ; 添加注册回调方法 在 Android SDK 版本 21- 26 之间,调用 ConnectivityManager 的 registerNetworkCallback 方法 /** * Registers to receive notifications about all networks which satisfy the given * {@link NetworkRequest}. The callbacks will continue to be called until * either the application exits or {@link #unregisterNetworkCallback