我使用CINDY的框架(http://cindy.sourceforge.net/)UDP发送ImageIcon,
当发送的ImageIcon的图像很小的时候,(大概1K左右),对方服务器能够接受并显示出来
如果发送的图片稍微大一点,就无法触发objectReceived事件,事实上服务器接收到了包
但是无法反序列化,我想可能是长度问题,不知道有没有高手重写过PacketDecoder的方法,
请求教...
//服务端
Session sessionserver=SessionFactory.createSession(SessionType.UDP);
sessionserver.setPacketEncoder(new SerialEncoder());
sessionserver.setPacketDecoder(new SerialDecoder());
sessionserver.setLocalAddress(new InetSocketAddress(9008));
sessionserver.setSessionHandler(new SessionHandlerAdapter(){
@Override
public synchronized void objectReceived(Session session, Object obj) throws Exception//接收到了对象
{
System.out.println("收到对象");
}
});
sessionserver.start();//发送端
Session session=SessionFactory.createSession(SessionType.UDP);
session.setRemoteAddress(new InetSocketAddress("127.0.0.1",9008));
session.setPacketEncoder(new SerialEncoder());
session.setPacketDecoder(new SerialDecoder());
session.start();
ImageIcon img=new ImageIcon("D:\\我的文档\\2.gif");//ImageIcon 文件 2.gif只有1KB
session.send(img);
session.close();
sessionserver.close();
当发送的ImageIcon的图像很小的时候,(大概1K左右),对方服务器能够接受并显示出来
如果发送的图片稍微大一点,就无法触发objectReceived事件,事实上服务器接收到了包
但是无法反序列化,我想可能是长度问题,不知道有没有高手重写过PacketDecoder的方法,
请求教...
//服务端
Session sessionserver=SessionFactory.createSession(SessionType.UDP);
sessionserver.setPacketEncoder(new SerialEncoder());
sessionserver.setPacketDecoder(new SerialDecoder());
sessionserver.setLocalAddress(new InetSocketAddress(9008));
sessionserver.setSessionHandler(new SessionHandlerAdapter(){
@Override
public synchronized void objectReceived(Session session, Object obj) throws Exception//接收到了对象
{
System.out.println("收到对象");
}
});
sessionserver.start();//发送端
Session session=SessionFactory.createSession(SessionType.UDP);
session.setRemoteAddress(new InetSocketAddress("127.0.0.1",9008));
session.setPacketEncoder(new SerialEncoder());
session.setPacketDecoder(new SerialDecoder());
session.start();
ImageIcon img=new ImageIcon("D:\\我的文档\\2.gif");//ImageIcon 文件 2.gif只有1KB
session.send(img);
session.close();
sessionserver.close();
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货