Fork me on GitHub
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 49 下一页
摘要: 简介 代理大家应该都很熟悉了,比较出名的像是nginx,apache HTTPD,stunnel等。 我们知道代理就是代替客户端向服务器端进行消息请求,并且希望在代理的过程中保留初始的TCP连接信息,例如源和目标IP和端口等,以提供一些个性化的操作。 一般情况下,为了实现这个目标,有一些现成的解决办 阅读全文
posted @ 2022-05-27 15:50 flydean 阅读(955) 评论(0) 推荐(1) 编辑
摘要: 简介 JDK中的Thread大家肯定用过,只要是用过异步编程的同学肯定都熟悉。为了保存Thread中特有的变量,JDK引入了ThreadLocal类来专门对Thread的本地变量进行管理。 ThreadLocal 很多新人可能不明白ThreadLocal到底是什么,它和Thread到底有什么关系。 阅读全文
posted @ 2022-05-25 17:54 flydean 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 简介 netty中提供的protobuf编码解码器可以让我们直接在netty中传递protobuf对象。同时netty也提供了支持UDP协议的channel叫做NioDatagramChannel。如果直接使用NioDatagramChannel,那么我们可以直接从channel中读写UDP对象:D 阅读全文
posted @ 2022-05-23 15:04 flydean 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 简介 在之前的文章中我们讲过了,jboss marshalling是一种非常优秀的java对象序列化的方式,它可以兼容JDK自带的序列化,同时也提供了性能和使用上的优化。 那么这么优秀的序列化工具可不可以用在netty中作为消息传递的方式呢? 答案当然是肯定的,在netty中一切皆有可能。 nett 阅读全文
posted @ 2022-05-20 15:51 flydean 阅读(252) 评论(1) 推荐(0) 编辑
摘要: 简介 在JAVA程序中经常会用到序列化的场景,除了JDK自身提供的Serializable之外,还有一些第三方的产品可以实现对JAVA对象的序列化。其中比较有名的就是Google protobuf。当然,也有其他的比较出名的序列化工具,比如Kryo和JBoss Marshalling。 今天想给大家 阅读全文
posted @ 2022-05-18 16:16 flydean 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 简介 我们在程序中除了使用常用的字符串进行数据传递之外,使用最多的还是JAVA对象。在JDK中,对象如果需要在网络中传输,必须实现Serializable接口,表示这个对象是可以被序列化的。这样就可以调用JDK自身的对象对象方法,进行对象的读写。 那么在netty中进行对象的传递可不可以直接使用JD 阅读全文
posted @ 2022-05-17 13:56 flydean 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 简介 要讲网络协议,肯定离不开OSI(Open System Interconnection)的七层模型。 我们一般关注的是网络层之上的几层,比如IPV4 IPV6所在的网络层,TCP UDP所在的传输层,HTTP FTP所在的应用层等。 今天要讲的sctp协议,全称是Stream Control 阅读全文
posted @ 2022-05-16 15:07 flydean 阅读(770) 评论(0) 推荐(1) 编辑
摘要: 简介 在json之前,xml是最常用的数据传输格式,虽然xml的冗余数据有点多,但是xml的结构简单清晰,至今仍然运用在程序中的不同地方,对于netty来说自然也提供了对于xml数据的支持。 netty对xml的支持表现在两个方面,第一个方面是将编码过后的多个xml数据进行frame拆分,每个fra 阅读全文
posted @ 2022-05-13 14:08 flydean 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 简介 字符串是我们程序中最常用到的消息格式,也是最简单的消息格式,但是正因为字符串string太过简单,不能附加更多的信息,所以在netty中选择的是使用byteBuf作为最底层的消息传递载体。 虽然底层使用的ByteBuf,但是对于程序员来说,还是希望能够使用这种最简单的字符串格式,那么有什么简单 阅读全文
posted @ 2022-05-12 16:10 flydean 阅读(647) 评论(0) 推荐(1) 编辑
摘要: 简介 在现代计算机系统中,可以有多个CPU,每个CPU又可以有多核。为了充分利用现代CPU的功能,JAVA中引入了多线程,不同的线程可以同时在不同CPU或者不同CPU核中运行。但是对于JAVA程序猿来说创建多少线程是可以自己控制的,但是线程到底运行在哪个CPU上,则是一个黑盒子,一般来说很难得知。 阅读全文
posted @ 2022-05-11 15:36 flydean 阅读(1047) 评论(2) 推荐(0) 编辑
摘要: 简介 什么是callback呢?简单点说callback就是回调通知,当我们需要在某个方法完成之后,或者某个事件触发之后,来通知进行某些特定的任务就需要用到callback了。 最有可能看到callback的语言就是javascript了,基本上在javascript中,callback无处不在。为 阅读全文
posted @ 2022-05-10 14:35 flydean 阅读(743) 评论(0) 推荐(0) 编辑
摘要: 简介 前面我们讲到了JNA中JAVA代码和native代码的映射,虽然可以通过TypeMapper来将JAVA中的类型和native中的类型进行映射,但是native中的数据类型都是基础类型,如果native中的数据类型是复杂的struct类型该如何进行映射呢? 不用怕,JNA提供了Structur 阅读全文
posted @ 2022-05-09 16:27 flydean 阅读(1383) 评论(1) 推荐(0) 编辑
摘要: 简介 在JNA中,为了和native的function进行映射,我们可以有两种mapping方式,第一种是interface mapping,第二种是direct mapping。虽然两种方式不同,但是在具体的方法映射中,我们都需要在JAVA中定义一个和native方法进行映射的方法。 而这个JAV 阅读全文
posted @ 2022-05-06 14:10 flydean 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 简介 我们知道在native的代码中有很多指针,这些指针在JNA中被映射成为Pointer。除了Pointer之外,JNA还提供了更加强大的Memory类,本文将会一起探讨JNA中的Pointer和Memory的使用。 Pointer Pointer是JNA中引入的类,用来表示native方法中的指 阅读全文
posted @ 2022-05-05 14:07 flydean 阅读(1188) 评论(0) 推荐(0) 编辑
摘要: 简介 现在是互联网的世界,大家从各种网站中获取各类资源和信息,通常我们只需要牢记一个网站地址即可,至于这个网站后台的服务器在什么地方,我们并不需要关心。当我们的请求指向这个网址之后,接下来就只需要等待请求被转发到该网址的后端服务器上,得到返回的处理结果即可。 这个将网站名称解析成为服务IP地址的服务 阅读全文
posted @ 2022-04-29 13:51 flydean 阅读(479) 评论(1) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 49 下一页