首页 文章 精选 留言 我的

精选列表

搜索[代码混淆],共10000篇文章
优秀的个人博客,低调大师

[转]区块链代码快速学习实践

如何使用Python编写一个简单且安全的区块链数据库API? GitHub项目链接:https://github.com/adamchinkc/blockchain_database 当我们讨论区块链时,我们总是把它与p2p网络联系起来,认为数据必须分散在网络上。这也会使人们担心区块链将会破坏数据的机密性。 事实上,区块链本身的数据架构已经为保护数据免受未经授权操作提供了一个好的解决方案,并且考虑到服务器受到足够的控制(如访问控制、网络和系统安全控制)的保护,最好是在内部网络。 因此,我尝试通过使用Python, Sqlite和RESTful API框架基于区块链的数据架构创建一个数据库。 区块链的数据架构及其完整性 摘自于中本聪发表的比特币白皮书《比特币:一种点对点电子现金系统》https://bitcoin.org/bitcoin.pd

优秀的个人博客,低调大师

05.Java网络编程(代码实践)

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路链接起来,在网络操作系统,网络管理软件及网络通信协议的协调下,实现资源贡献和信息传递的计算机系统 网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换 网络编程三要素: IP:每个设备在网络中的唯一标识,每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址 ipconfig:查看本机IP地址,ipv4地址 ping:测试连接 端口:每个程序在设备上的唯一标识,每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发送到哪台机器上,还需要确定发送到哪个程序,端口号范围:0~65535,编写的网络应用端口号尽量设置1024以上的,1024之下的基本上都被系统程序占用了 协议:为计算机网络进行数据交换而建立的规则,标准或约定的集合 UDP:面向无连接,数据不安全,速度快,不区分客户端与服务端 TCP:面向链接,三次握手,数据安全但效率低,分为客户端和服务端,三次握手的过程,客户端向服务端发起请求,服务端响应请求,传输数据 Socke套接字通信: 网络上具有唯一标识的IP地址和端口号组合在一起,才能构成唯一能识别的标识符套接字 通信的两端都有socket,网络通信其实就是socket间的通信,它通过IO流进行传输,Socket在应用程序中创建,通过一种绑定机制与驱动机制建立关系,告诉自己所对应的IP和端口 新建一个Java工程模拟UDP通信 图片1.png package com.ren.socket; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner; /** * socket好比发货的码头,packet就是需要发送的集装箱货物,这个货物需要发送到哪里,它的地址 * 信息是在货物上标明的,所以packet构造方法上传递了发送目的地的地址和该地址上接收程序的端口 * @author renzhenming * */ public class Send { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); DatagramSocket socket = new DatagramSocket(); while(true){ String scan = sc.nextLine(); DatagramPacket packet = new DatagramPacket(scan.getBytes(), //或者用127.0.0.1也可以 scan.getBytes().length, InetAddress.getByName("192.168.1.103"), 9999); socket.send(packet); } } } package com.ren.socket; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; /** * 创建接收端 * @author renzhenming * */ public class Receive { public static void main(String[] args) throws IOException { //用于接收传递过来的数据 DatagramPacket packet = new DatagramPacket(new byte[1024], 1024); //指定端口号,用于接收指定端口传递的数据 DatagramSocket socket = new DatagramSocket(9999); while(true){ //执行之后会将接收到的数据放在packet中 socket.receive(packet); //转换成字符串打印 byte[] arr = packet.getData(); int len = packet.getLength(); String ip = packet.getAddress().getHostAddress(); int port = packet.getPort(); System.out.println(ip+":"+port+":"+new String(arr,0,len)); } } } 为了演示效果,我们打开两个命令行,在命令行中分别执行这两个Java方法,先执行Receive端,注意要在bin目录下运行命令 图片1.png 开启线程执行 package com.ren.socket; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Scanner; /** * socket好比发货的码头,packet就是需要发送的集装箱货物,这个货物需要发送到哪里,它的地址 * 信息是在货物上标明的,所以packet构造方法上传递了发送目的地的地址和该地址上接收程序的端口 * @author renzhenming * */ public class SocketDemo { public static void main(String[] args) throws IOException { new Receive().start(); new Sender().start(); } } class Receive extends Thread{ @Override public void run() { super.run(); try { //用于接收传递过来的数据 DatagramPacket packet = new DatagramPacket(new byte[1024], 1024); //指定端口号,用于接收指定端口传递的数据 DatagramSocket socket = new DatagramSocket(9999); while(true){ //执行之后会将接收到的数据放在packet中 socket.receive(packet); //转换成字符串打印 byte[] arr = packet.getData(); int len = packet.getLength(); String ip = packet.getAddress().getHostAddress(); int port = packet.getPort(); System.out.println(ip+":"+port+":"+new String(arr,0,len)); } } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } class Sender extends Thread{ @Override public void run() { super.run(); try { Scanner sc = new Scanner(System.in); DatagramSocket socket = new DatagramSocket(); while(true){ String scan = sc.nextLine(); DatagramPacket packet = new DatagramPacket(scan.getBytes(), //或者用127.0.0.1也可以 scan.getBytes().length, InetAddress.getByName("192.168.1.103"), 9999); socket.send(packet); } } catch (SocketException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 新建一个Java工程模拟TCP通信 TCP协议的Socket通信,客户端通过Socket处理发送和接收,服务端通过ServerSocket 处理发送和接收 Socket_TCP_Client package com.ren.socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.Socket; import java.net.UnknownHostException; public class Socket_TCP_Client { public static void main(String[] args) throws UnknownHostException, IOException { //socket1(); socket2(); } //多个 private static void socket2() throws UnknownHostException, IOException { Socket socket = new Socket("127.0.0.1",12345); BufferedReader br = new BufferedReader (new InputStreamReader(socket.getInputStream())); PrintStream ps = new PrintStream(socket.getOutputStream()); System.out.println(br.readLine()); ps.println("我可以去哪里逛逛呢"); System.out.println(br.readLine()); ps.println("谢谢"); socket.close(); } //一次读取一个 private static void socket1() throws UnknownHostException, IOException { Socket socket = new Socket("127.0.0.1",12345); //输入流可以读取服务端输出流写出的数据 InputStream in = socket.getInputStream(); //输出流可以写出数据到服务端输入流 OutputStream out = socket.getOutputStream(); out.write("打开百度首页".getBytes()); byte[] arr = new byte[1024]; int len = in.read(arr); System.out.println("收到服务端数据:"+new String(arr,0,len)); } } Socket_TCP_Server package com.ren.socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; public class Socket_TCP_Server { public static void main(String[] args) throws Exception { //socket1(); //socket2(); socket3(); } //多线程开启服务器,可以接收多个客户端来咨询 private static void socket3() throws IOException { final ServerSocket serverSocket = new ServerSocket(12345); while(true){ new Thread(new Runnable() { @Override public void run() { try { Socket socket = serverSocket.accept(); BufferedReader br = new BufferedReader (new InputStreamReader(socket.getInputStream())); PrintStream ps = new PrintStream(socket.getOutputStream()); ps.println("欢迎来到中国"); //readLine是以换行为结束符读取一行数据的,如果客户端写入数据的时候使用了print而不是println,就会导致 //数据无法读取 System.out.println(br.readLine()); ps.println("你可以先去游览北京长城"); System.out.println(br.readLine()); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }).start(); } } //实现多次读取 private static void socket2() throws Exception { ServerSocket serverSocket = new ServerSocket(12345); Socket socket = serverSocket.accept(); BufferedReader br = new BufferedReader (new InputStreamReader(socket.getInputStream())); PrintStream ps = new PrintStream(socket.getOutputStream()); ps.println("欢迎来到中国"); //readLine是以换行为结束符读取一行数据的,如果客户端写入数据的时候使用了print而不是println,就会导致 //数据无法读取 System.out.println(br.readLine()); ps.println("你可以先去游览北京长城"); System.out.println(br.readLine()); socket.close(); } //实现单词读取 private static void socket1() throws IOException { //注意端口号不能超过65535 ServerSocket server = new ServerSocket(12345); //接收服务端数据,这个操作会阻塞线程,直到收到数据才往下执行 Socket socket = server.accept(); //接收到的客户端消息 InputStream is = socket.getInputStream(); byte[] arr = new byte[1024]; int len = is.read(arr); System.out.println("收到客户端数据:"+new String(arr,0,len)); //向客户端发送消息需要获取一个输入流然后write OutputStream os = socket.getOutputStream(); os.write("百度一下,你就知道".getBytes()); } }

优秀的个人博客,低调大师

Android中的intent调用代码总结

显示Web网页 Uri uri = Uri.parse("http://www.android123.com.cn"); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it); 显示Google地图 Uri uri = Uri.parse("geo:38.899533,-77.036476"); Intent it = new Intent(Intent.Action_VIEW,uri); startActivity(it); Maps路径规划 Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%20startLng&daddr=endLat%20endLng&hl=en"); Intent it = new Intent(Intent.ACTION_VIEW,URI); startActivity(it); 拨打电话 Uri uri = Uri.parse("tel:xxxxxx"); Intent it = new Intent(Intent.ACTION_DIAL, uri); startActivity(it); Uri uri = Uri.parse("tel.xxxxxx"); Intent it =new Intent(Intent.ACTION_CALL,uri); 注意需要权限android.permission.CALL_PHONE 发送SMS/MMS Intent it = new Intent(Intent.ACTION_VIEW); it.putExtra("sms_body", "android开发网欢迎您"); it.setType("vnd.android-dir/mms-sms"); startActivity(it); 发送短信 Uri uri = Uri.parse("smsto:10086"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); it.putExtra("sms_body", "10086"); //正文为10086 startActivity(it); 发送彩信 Uri uri = Uri.parse("content://media/external/images/media/10"); //该Uri根据实际情况修改,external代表外部存储即sdcard Intent it = new Intent(Intent.ACTION_SEND); it.putExtra("sms_body", "android123.com.cn"); it.putExtra(Intent.EXTRA_STREAM, uri); it.setType("image/png"); startActivity(it); 发送Email Uri uri = Uri.parse("mailto:android123@163.com"); Intent it = new Intent(Intent.ACTION_SENDTO, uri); startActivity(it); Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_EMAIL, "android123@163.com"); it.putExtra(Intent.EXTRA_TEXT, "android开发网测试"); it.setType("text/plain"); startActivity(Intent.createChooser(it, "选择一个Email客户端")); Intent it=new Intent(Intent.ACTION_SEND); String[] tos={"android123@163.com"}; //发送到 String[] ccs={"ophone123@163.com"}; //抄送 it.putExtra(Intent.EXTRA_EMAIL, tos); it.putExtra(Intent.EXTRA_CC, ccs); it.putExtra(Intent.EXTRA_TEXT, "正文"); it.putExtra(Intent.EXTRA_SUBJECT, "标题"); it.setType("message/rfc822"); //编码类型 startActivity(Intent.createChooser(it, "选择一个Email客户端")); Email添加附件 Intent it = new Intent(Intent.ACTION_SEND); it.putExtra(Intent.EXTRA_SUBJECT, "正文"); it.putExtra(Intent.EXTRA_STREAM, "file:///sdcard/nobody.mp3"); //附件为sd卡上的nobody MP3文件 sendIntent.setType("audio/mp3"); startActivity(Intent.createChooser(it, "选择一个Email客户端")); 播放多媒体 Intent it = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse("file:///sdcard/nobody.mp3"); it.setDataAndType(uri, "audio/mp3"); startActivity(it); Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1"); //从系统内部的MediaProvider索引中调用播放 Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); Uninstall卸载程序 Uri uri = Uri.fromParts("package", packageName, null); //packageName为包名,比如com.android123.apkInstaller Intent it = new Intent(Intent.ACTION_DELETE, uri); startActivity(it); 进入联系人界面 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(People.CONTENT_URI); startActivity(intent); 查看某个联系人,当然这里是ACTION_VIEW,如果为选择并返回action改为ACTION_PICK,当然处理intent时返回需要用到startActivityforResult Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, ID);//最后的ID参数为联系人Provider中的数据库BaseID,即哪一行 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(personUri); startActivity(intent); 选择一个图片 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*");//此处->audio/*对应选择音频 video/*对应选择视频 startActivityForResult(intent, 0); 调用Android设备的照相机,并设置拍照后存放位置 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/cwj", android123 + ".jpg"))); //存放位置为sdcard卡上cwj文件夹,文件名为android123.jpg格式 startActivityForResult(intent, 0); 搜索指定package name在market上 Uri uri = Uri.parse("market://search?q=pname:com.android123.cwj"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 原文出处:后端技术杂谈 原文链接 转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册