首页 技术 正文
技术 2022年11月24日
0 收藏 379 点赞 3,830 浏览 1792 个字

Kryo是一个序列化框架。

Kryonet是一个基于kryo的RPC框架,它实现了一套高效简洁的API,它通过NIO实现了TCP和UDP通讯,目前还不支持Http。

自己写了一个测试代码,运行了下,感觉还不错,记录下来。

1、listener

package com.mytestcodes.kryonet;  import com.esotericsoftware.kryonet.Connection;
import com.esotericsoftware.kryonet.Listener;
import com.mytestcodes.serialization.fulltest.Child; public class KListener extends Listener
{
public KListener()
{ } public KListener(String name)
{
this.name = name;
} private String name; public void received(Connection connection, Object object)
{
System.out.println(name + " has recive a message"); if (object instanceof Child)
{
Child child = (Child) object;
System.out.println(child.getChildName());
child.setChildName(name + " response");
connection.sendTCP(child);
}
} public String getName()
{
return name;
} public void setName(String name)
{
this.name = name;
} }

2、client

3、server

package com.mytestcodes.kryonet;  import java.io.IOException;  import com.esotericsoftware.kryonet.Server;  public class KServer
{
public static void main(String[] args)
{
Server server = new Server();
server.addListener(new KListener("server")); server.getKryo().setRegistrationOptional(true);
server.start();
try
{
// TCP port 54555 and UDP port 54777
server.bind(54555, 54777);
} catch (IOException e)
{
e.printStackTrace();
}
}
}

4、child:

package com.mytestcodes.serialization.fulltest;  import java.io.Serializable;  public class Baby implements Serializable
{ /**
*
*/
private static final long serialVersionUID = 8882758100866916676L; private String babyName = "baby"; public String getBabyName()
{
return babyName;
} public void setBabyName(String babyName)
{
this.babyName = babyName;
} }
package com.mytestcodes.serialization.fulltest;  import java.io.Serializable;  public class Parent implements Serializable
{ /**
*
*/
private static final long serialVersionUID = 6933088125784071832L; private String parentName="parent"; public String getParentName()
{
return parentName;
} public void setParentName(String parentName)
{
this.parentName = parentName;
} }
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,961
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,485
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,330
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,113
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,746
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,780