解决Socket通信怎么区分两条不同的数据 Socket 通信的时候 如果我有两数据同时需要服务器接收 一条是普通的String 字符串 另一条是一个序列化的容器 我接收的时候怎么把这两条数据分别取出来? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.用ObjectInputStream和ObjectOutputStream传序列化对象你可以弄一个通用的类,把这个String或你要传的对象做一个属性,然后再加上一些其它的属性进行描述以便区分2.自定义一个通讯协议,在数据包前面加报头描述,然后把要传的数据全都转成byte[]数组进行传输 如果是不同的 Socket 发过来的,处理起来也会是分别处理,不需要人工区分;如果这两条数据包含在一条消息中,就需要制定一个简单的协议将其区分开来。例如:[字符串长度][字符串][序列化长度][序列化内容] 你要是同一个socket的话,就用某个标识符去区分这两条例如;号...什么的都行 答:你什么都不需要。直接用ObjectInputStream来读,然后使用getClass()区分数据,然后从Object类型向下转型(String或 序列化的容器 )。如:ObjectInputStream ois=new ObjectInputStream(。。);Object o1=ois.readObject(); //读入一个对象:是String?还是序列化的容器?System.out.println(o1.getClass()); //o1.getClass()已区分开来了。若是String,你再向下强转Object o2=ois.readObject(); //读入一个对象:是String?还是序列化的容器?System.out.println(o2.getClass()); //o1.getClass()已区分开来了。若是序列化的容器,你再向下强转 JFrame和JPanel中随机显示图片的问题。 Java,进度条的问题 如何使用JAVA编写分析IP数据包的程序? 求救:如何让当前窗口最小化? int 型 1到'0001'用什么function 请高手帮我解决一下JFielChooser的错误 送分哦!!! 大神请进,如下日志输出场景能否通过log4j的配置搞定 在tomcat中运行,界面类似桌面应用,jsp页面很少。请教这是什么技术 关于jar文件编译后执行中的图片不显示错误 jbuilder8 问题 一个很基础的java程序,怎么就是读不懂啊,高手过来看看 乘积位数的问题
你可以弄一个通用的类,把这个String或你要传的对象做一个属性,然后再加上一些其它的属性进行描述以便区分
2.自定义一个通讯协议,在数据包前面加报头描述,然后把要传的数据全都转成byte[]数组进行传输
如果这两条数据包含在一条消息中,就需要制定一个简单的协议将其区分开来。例如:
[字符串长度][字符串][序列化长度][序列化内容]
什么的都行
Object o1=ois.readObject(); //读入一个对象:是String?还是序列化的容器?
System.out.println(o1.getClass()); //o1.getClass()已区分开来了。若是String,你再向下强转
Object o2=ois.readObject(); //读入一个对象:是String?还是序列化的容器?
System.out.println(o2.getClass()); //o1.getClass()已区分开来了。若是序列化的容器,你再向下强转