- 浏览: 239153 次
- 性别:
- 来自: 湖南
最新评论
-
yuxuejun1123:
为什么没有powerPC,个人觉得这篇文章把mips和powe ...
ARM MIPS PowerPC比较 -
yy232:
我刚学这个,有点疑问,希望你能为我解答 你说 “任何人只 ...
centos的用户、组权限、添加删除用户等操作的详细操作命令 -
wstxdz1023:
就那么几句代码,全是问题
socket 心跳
文章列表
如果自己去实现心跳功能其实最土的办法是隔一定时间向服务端发送一个心跳包,然后服务端如果收到了,服务端就发送一个响应信号,如果客户端在一定的时间间隔内取得了这个响应,那么连接是正常的,如果没有取得,那么重连这个socket.我想如果JDK已经实现了这个功能的话,那我就没必要自己再去造轮子了。参考了一下网上的资料,说是socket.setKeepAlive(true)就实现了心跳包的发送功能,我不知道这个API每隔多少时间去发送一次,还是这种用法有些误解,我假定这种用法是对的,那么,心跳时间间隔我自己实现:在Client中心跳线程中的
Java code
Socket socket= So ...
引用 3 楼 zhouyongyang621 的回复:引用 2 楼 thinke365 的回复: 引用 1 楼 qiushyfm 的回复: EventObject类是所有事件象的基础类,所有的事件类都是由它派生出来的。 它实现了Serializalbe接口 ,因此所有的事件都可以被串行化。 EventObject类中还提供getSource()方法来确定引发事件的源对象。 事件可串行化,而对象不被串行化 这样串行化下来,只有对象id,而没有任何对象属性了吧,呵呵
public Object getSource() { return source; }这个方法 ...
SOCKS协议最初由David Koblas设计,后经Ying-Da Lee改进成SOCKS 4协议。
SOCKS4协议主要是如下几个RFChttp://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocolhttp://www.rfc-editor.org/rfc/rfc1928.txthttp://www.smartftp.com/Products/SmartFTP/RFC/socks4a.protocol
SOCKS 4只支持TCP转发。请求报文格式如下:+----+----+----+----+----+----+----+--- ...
笔者在实际学习中,由于在有些软件用到了socks5(如oicq,icq等),对其原理不甚了解,相信很多朋友对其也不是很了解,于是仔细研读了一下rfc1928,觉得有必要译出来供大家参考。
1.介绍:
防火墙的使用,有效的隔离了机构的内部网络和外部网络,这种类型的Internet架构变得越来越流行。这些防火墙系统大都充当着网络之间的应用层网关的角色,通常提供经过控制的Telnet,FTP,和SMTP访问。为了推动全球信息的交流,更多的新的应用层协议的推出。这就有必要提供一个总的架构使这些协议能够更明显和更安全的穿过防火墙。也就有必要在实际上为它们穿过防火墙提供一个更强的认证机制。这种需 ...
APN的英文全称是Access Point Name,中文全称叫接入点,是您在通过手机上网时必须配置的一个参数,它决定了您的手机通过哪种接入方式来访问网络。
基本概念
APN(Access Point Name),即“接入点名称”,用来标识GPRS的业务种类,目前分为两大类:CMWAP(通过GPRS访问WAP业务)、CMNET(除了WAP以外的服务目前都用CMNET,比如连接因特网等)。
APN的英文全称是Access Point Name,中文全称叫接入点,是您在通过手机上网时必须配置的一个参数,它决定了您的手机通过哪种接入方式来访问网络。
...
--官方说明--
To set up your Linux development environment, make sure you have the following:
●Required Packages: Git 1.5.4 or newer and the GNU Privacy Guard.
JDK 5.0, update 12 or higher. Java 6 is not supported, because of incompatibilities with @Override. flex, bison, gperf, libsdl-dev, ...
首先下载cygwin,cygwin是一个类linux平台。即在windows环境下模拟linux终端。比起运行linux虚拟机,是一个轻量 的解决办法。除了本文用来下载android源码,你当然可以用它来学习linux。cygwin的中文网是http://www.cygwin.cn /,建议从这下载cygwin,这是国内最快的镜像站点。严格按网站的说明安装:http://www.cygwin.cn/site/install /,最后注意的是在安装说明的下一步操作是选择需要下载的工具库,缺省是是default,鼠标点击default,会把安装类别切换成install, 这样才能安装下载androi ...
1. NDK 下载 最新版 Android NDK 开发工具包 地址:http://dl.google.com/android/ndk/android-ndk-r4-windows.zip2.交叉编译环境下载 Cygwin ,并安装。 我们通过Cygwin编译一个交叉环境。地址:http://www.cygwin.com/ 选择 Devel Install 安装 gcc 和 make 等工具。 3 .配置NDK环境在 Cygwin的root 的目录下root\home\<username> 目录下找到 ,bath_profile 文件 添加 #################### ...
在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入缓冲区.缓冲区是定长的,基本上它只是一个列表,它的所有元素都是基本数据类型.ByteBuffer是最常用的缓冲区,它提供了读写其他数据类型的方法,且信道的读写方法只接收ByteBuffer.
1)只有系统设置中打开触感反馈选项,方法performHapticFeedback(int feedbackConstant)才会被执行,而performHapticFeedback(feedbackConstant,flags)有些特殊,比如:
HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING忽略全局设置(开启与否)或是在开启全局设置下HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING忽略视图的android:hapticFeedbackEnabled的设置,总是执行触感反馈。
2)系统设 ...
1。MINA 框架简介
下图为本人根据对MINA的简要理解,所画出来的框架简图:
当客户首次访问采用MINA编写的程序时,IoAcceptor作为线程运行,负责接受来自客户的请求。当有客户请求连接时,创建一个Session,该Session与IoProcessor、SocketChannel以及IOService联系起来。IoProcessor也作为另外一个线程运行,定时检查(轮询)客户是否有数据到来,并对客户请求进行处理,依次调用在IOService注册的各个IoFilter,最后调用IoHandler进行最终的逻辑处理,再将处理后的结果Filter后返回给客户端。
2。Io ...
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源(传统socket通讯服务器设计模式)的。
Java NIO非堵塞技术实际是采取Reactor模式,或者说是Observer模式为我们监察I/O端口,如果有内容进来,会自动通知我们,这样,我们就不必开启多个线程死等,从外界看,实现了流畅的I/O读写, ...
一、创建型模式
FACTORY模式
人才市场:以往是要哪个人才,就找哪个人才,效率低,现在有了人才市场,我们只需直接去人才市场挑一个好了;
BUILDER模式
生产流水线:以前是手工业作坊式的人工单个单个的生产零件然后一步一步组装做,好比有了工业革命,现在都由生产流水线代替了。如要造丰田汽车,先制定汽车的构造如由车胎、方向盘、发动机组成。再以此构造标准生产丰田汽车的车胎、方向盘、发动机。然后进行组装。最后得到丰田汽车;
PROTOTYPE模式
印刷术的发明:以前只能临贴才能保持和别人的字迹基本相同,直从印刷技术发明,从而保证了复制得 ...
1.为什么需要Prototype模式? 引入原型模式的本质在于利用已有的一个原型对象,快速的生成和原型对象一样的实例。你有一个A的实例a:A a = new A();现在你想生成和a一样的一个实例b,按照原型模式,应该是这样:A b = a.Clone();而不是重新再new一个A对象。通过上面这句话就可以得到一个和a一样的实例,确切的说,应该是它们的数据成员是一样的。Prototype模式同样是返回了一个A对象而没有使用new操作。
2. 什么是 深克隆(深拷贝) 和 浅克隆(浅拷贝) 浅克隆只克隆地址,不可克隆地址指向的东西,因此浅克隆经常使得两个对象使用同一个地址 而深克 ...
发现自己对于设计模式的理解果然比原来好了很多,这可能是因为用Java来实现设计模式更为贴切和易理解的原因吧。在写这些系列文章时,俺当然参考了网上其它前辈们的源码,对俺最有帮助的就是那本Design Patter In Java,写得很不错,但可惜,里面的例子,俺还是觉得有点复杂。按我的想法,既然设计模式这么难学,所以,刚开始时,对于设计模式的应用,我们只要尽量抓住每个模式最本质的地方,并力求代码尽量简单易懂就好了。至于等到日后你正确理解了设计模式,再去搞复杂的代码也不迟。也许,就是因为当初自己学设计模式学得太苦,所以不希望大家再走我一样的弯路,因此也就有了这个系列文章。希望自己的这个用Jav ...