编程小结
文章平均质量分 83
天成天下
打杂的程序猿,干了这么多年的程序员,已经麻木,已经迷失,不知前路在何方,在此写博客,也只是聊以自慰罢了。
展开
-
float在计算机的存储方式
float在计算机的存储方式原创 2022-12-15 15:46:43 · 3199 阅读 · 2 评论 -
UDP打洞原理
许多P2P软件比如SKYPE,QQ,电驴之类需要不同内网的两台机子进行通信,而路由器的NAT机制决定了内网访问外网容易,而外网访问内网困难,那如何才能做到这一点呢?有办法------打洞!打洞具体实现:需要一台服务器,现在假设两台内网PC,A和B想用端口4000通信,网关分别为NATA,NATB.服务器为S,配置如下:打洞过程:1.A访问S,转载 2017-03-15 15:46:58 · 347 阅读 · 0 评论 -
Linux网络编程:原始套接字的魔力【上】
基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们已经开放给我们的诸如源、目的I转载 2017-03-11 14:21:02 · 394 阅读 · 0 评论 -
JNI学习积累之一 ---- 常用函数大全
转载自:http://blog.csdn.net/qinjuning/article/details/7595104 最近一段时间,在工作方面比较闲,分配的Bug不是很多,于是好好利用这段时间就着源代码看了些许模块, 主要方式 还是贼看贼看代码, 同时利用烧机的便利,加Log观看,基本上都能弄个脸熟 。心里想着该写点什么了?可是水平不够,再加上 包括很多真正实现地方-转载 2017-04-12 19:26:40 · 301 阅读 · 0 评论 -
JNI学习积累之二 ---- 数据类型映射、域描述符说明
转载自:http://blog.csdn.net/qinjuning/article/details/7599796 在Java存在两种数据类型: 基本类型 和 引用类型 ,大家都懂的 。 在JNI的世界里也存在类似的数据类型,与Java比较起来,其范围更具严格性,如下: 1、primitive types ----基本数据类型,如:i转载 2017-04-12 19:30:17 · 274 阅读 · 0 评论 -
JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
转载自: http://blog.csdn.net/qinjuning/article/details/7607214 在掌握了JNI函数的使用和相关类型的映射后,以及知晓何利用javah工具生成对应的jni函数以及如何生成动态 链接库 (windos下就是.dll库,Linux就是.so库了,不懂在Window下生成dll动态库的,具体流程可看我的这篇博客: 《A转载 2017-04-12 19:32:05 · 352 阅读 · 0 评论 -
android开发ndk调用第三方so库
转载自:http://blog.csdn.net/hongbochen1223/article/details/52957421 1.0 功能概述1.0.1 概述在Android开发中,Java调用C/C++函数库是经常遇到的,我们的android开发中使用JNI开发技术,有下面几种情况:已经使用C/C++发了某些函数库,如果再使用java封装相应的函数库的话,可能会话费更转载 2017-04-19 09:26:44 · 1288 阅读 · 0 评论 -
Linux的TUN/TAP编程
转载自:http://blog.chinaunix.net/uid-317451-id-92474.html TUN/TAP虚拟网络设备为用户空间程序提供了网络数据包的发送和接收能力。他既可以当做点对点设备(TUN),也可以当做以太网设备(TAP)。实际上,不仅Linux支持TUN/TAP虚拟网络设备,其他UNIX也是支持的,他们之间只有少许差别。原理简介TUN/TAP虚拟转载 2017-04-17 12:55:26 · 1870 阅读 · 0 评论 -
Linux下的ioctl()函数详解
转载自:http://www.cnblogs.com/tdyizhen1314/p/4896689.html 我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围。写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。一、 什么是ioctl ioctl是设备驱动程序中对设备的转载 2017-05-17 11:44:56 · 2549 阅读 · 0 评论 -
/bin/sh^M:损坏的解释器: 没有那个文件或目录
转载自:http://blog.csdn.net/njchenyi/article/details/8492854 脚本文件保存时使用了DOS格式,用DOS2UNIX转为UNIX格式,也可以用vim打开,用:set ff=unix转换。不要在 Windows下编辑脚本文件,否则经常会遇到这种问题。方法1:代码:sed -i 's/\r$//' server.sh方转载 2017-05-31 11:58:27 · 557 阅读 · 0 评论 -
android studio NDK开发环境设置
1、 新建一个android工程新建一个android工程NdkTest,注意,在新建过程中,未选择Include C++ Support。2、 安装/设置NDK路径在此可以通过android studio在线下载安装NDK,也可以离线下载NDK安装包再设置NDK路径。本人将NDK直接放在了SDK目录下,如下:3、 创建Native接口类在NdkTest工程中app原创 2017-03-17 12:50:09 · 5183 阅读 · 1 评论 -
【学习Android NDK开发】native code通过JNI调用Java方法
转载自:http://www.cnblogs.com/xitang/p/4174619.html转载自:http://www.cnblogs.com/dyingbleed/archive/2012/10/12/2721781.html一、简易入门型:1、建立Android应用application name: CallJavaMethodpackage na转载 2017-04-10 15:16:23 · 3078 阅读 · 0 评论 -
Android AlertDialog自动弹出软件盘和隐藏软件盘
本人在使用中需要点击listview的item后弹出AlertDialog,在Dialog中有一个编辑框,默认是可编辑的。故弹出AlertDialog后应该自动显示软件盘,退出Dialog时影藏软键盘。mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Ov原创 2017-03-14 14:06:45 · 411 阅读 · 0 评论 -
Android应用程序私有目录下文件操作总结
转载自:http://blog.csdn.net/roland_sun/article/details/46460063每一个Android程序都有一个特有的,只能由本程序自己访问的私有目录,这个目录一般位于/data/data//目录下。所有应用程序私有目录中保存的文件在用户卸载该应用的时候,都会被自动删除掉。在Android应用程序开发中,经常使用的一些系统提供的A转载 2017-04-07 14:30:03 · 1551 阅读 · 0 评论 -
linux ioctl()函数详解
我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl,所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。 一、 什么是ioctl。 ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率转载 2017-03-11 14:02:51 · 5849 阅读 · 1 评论 -
linux socket 操作链路层
Linux提供最常用的网络通信应用程序开发接口--Berkerley套接字(Socket).它既适用于同一主机上进程间通信(IPC),又适用于不同主机上的进程间通信。套接字的设置通过socket调用完成:int socket(int family,int type,int protocol);其中family指通信域或协议族,Linux系统支持的网络协议族有PF_UNIX,PF_I转载 2017-03-11 14:04:32 · 1483 阅读 · 0 评论 -
Linux原始套接字实现分析
本文从IPV4协议栈原始套接字的分类入手,详细介绍了链路层和网络层原始套接字的特点及其内核实现细节。并结合原始套接字的实际应用,说明各类型原始套接字的适应范围,以及在实际使用时需要注意的问题。 一、原始套接字概述协议栈的原始套接字从实现上可以分为“链路层原始套接字”和“网络层原始套接字”两大类。本节主要描述各自的特点及其适用范围。链路层原始套接字可以直接用于接收和发送链路层的M转载 2017-03-11 14:09:59 · 722 阅读 · 0 评论 -
揭开网络编程常见API的面纱【上】
Linux网络编程API函数初步剖析 今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。 1、socket(family,type,protocol) 当我们在开发网络应用程序时,使用该系统调用来创建一个套接字。该API所做的工作如下所示: 该系转载 2017-03-11 14:16:16 · 208 阅读 · 0 评论 -
揭开网络编程常见API的面纱【下】
Linux网络编程数据收发的API流程分析 只要把数据在协议栈中的流动线路和脉络弄清楚了,关于协议栈的实现部分,理解起来就轻松多了。在网络编程章节的数据接收过程中,我们主要介绍过read()、recv()、recvfrom()还有一个recvmsg()没介绍到,今天我们就来看一下这几个API函数到底有什么差别。数据接收 在接收数据的过程,主要分两个阶转载 2017-03-11 14:17:08 · 221 阅读 · 0 评论 -
Linux网络编程:原始套接字的魔力【上】
基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们已经开放给我们的诸如源、目的I转载 2017-03-11 14:21:36 · 216 阅读 · 0 评论 -
Linux网络编程:原始套接字的魔力【下】
可以接收链路层MAC帧的原始套接字 前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW, protocol)我们可以直接实现自行构造整个IP报文,然后对其收发。提醒一点,在用这种方式构造原始IP报文时,第三个参数protocol不能用IPPROTO_IP,这样会让系统疑惑,不知道该用什么协议来伺候你了。 今天我们介绍原始套接字的另一种用法转载 2017-03-11 14:22:59 · 234 阅读 · 0 评论 -
Linux网络编程:原始套接字的魔力【续】
如何从链路层直接发送数据帧 本来以为这部分都弄完了,结果有朋友反映说看了半天还是没看到如何从链路层直接发送数据。因为上一篇里面提到的是从链路层“收发”数据,结果只“收”完,忘了“发”,实在抱歉,所以就有这篇续出来了。 上一节我们主要研究了如何从链路层直接接收数据帧,可以通过bind函数来将原始套接字绑定到本地一个接口上,然后该套接字就只接收从该接口收上来的对应的数据转载 2017-03-11 14:24:01 · 201 阅读 · 0 评论 -
java反序列化安全实例解析
什么是序列化序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。简单来说:序列化: 将数据结构或对象转换成二进制串的过程反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程下面转载 2017-03-11 15:01:40 · 2749 阅读 · 0 评论 -
Application.mk语法解释
转载自:http://blog.csdn.net/roland_sun/article/details/46318893Application.mk是用来描述你的应用程序需要哪些模块,以及这些模块所要具有的一些特性。而相对的Android.mk是用来描述要编译某个具体的模块,所需要的一些资源,包括要编译的源码、要链接的库等等。Application.mk所要描述的内容主要包括:转载 2017-04-07 14:26:14 · 304 阅读 · 0 评论 -
C语言实现UDP打洞
首先,如果你不是很清楚UDP打洞原理,建议先看下这篇博文,写的很好。 http://blog.csdn.net/wenhuiqiao/article/details/5929186 废话不多说,上代码,过程请看代码注释,其中Client1和Client2实现代码相同,只是方向上有变化。 UDPServer:[cpp] view plain转载 2017-03-11 13:54:15 · 1148 阅读 · 0 评论