社区
Java SE
帖子详情
java如何判断datagramsocket传递的是否是一个对象
ma_wangfy
2010-01-31 09:39:39
如题:java如何判断datagramsocket传递的是否是一个对象
...全文
118
9
打赏
收藏
java如何判断datagramsocket传递的是否是一个对象
如题:java如何判断datagramsocket传递的是否是一个对象
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
humanity
2010-01-31
打赏
举报
回复
那你可能需要定义自己的简单消息格式,比如第一个字节说明后面消息内容的格式是普通文本还是对象(内容以二进制为主),或者把对象本身也包装成 base64 一样混合成普通数据一起发送(内容以纯文本为主)。
Java ObjectInputStream.readObject0(boolean) 方法里面有关于判断内容的方法,但是它是在假设你肯定是在用 Java Serialization 在发送数据并据此推断内容是什么类型的 Java 对象(字符串,数据,null,Class 等),如果你在发送普通数据时不是用 Java serialization 的方法那就不能用这个办法。换个角度,如果你把普通数据也用 Java Serialization 发送的话,就没有任何问题。
gloomyfish
2010-01-31
打赏
举报
回复
如果想传递一个对象文件,建议你新开一个socket来读写,
一个例子就FTP的实现,FTP的21端口其实是个控制端口,
真正的读写文件的是FTP应用程序的另外端口!
实际上socket永远不会知道你传输的是对象,对象
是你自己定义,socket传输的是字节流,需要你自己做
一些工作来,搞清这一点,你问的问题就不存在。
ma_wangfy
2010-01-31
打赏
举报
回复
再说明一下,客户端先交替发送对象和普通数据到服务器,服务器转发,然后要在客户端接收,客户端接收时要判断,接受的是普通数据还是对象.
ma_wangfy
2010-01-31
打赏
举报
回复
[Quote=引用 2 楼 javaalpha 的回复:]
参考
http://www.99inf.net/SoftwareDev/Java/52221.htm
http://tech.e800.com.cn/articles/2009/68/1244423543076_1.html
[/Quote]
这上边只有如何传送对象,没有说明如何判断传送的是对象还是普通数据?
JavaAlpha
2010-01-31
打赏
举报
回复
参考
http://www.99inf.net/SoftwareDev/Java/52221.htm
http://tech.e800.com.cn/articles/2009/68/1244423543076_1.html
ma_wangfy
2010-01-31
打赏
举报
回复
怎么解决
ma_wangfy
2010-01-31
打赏
举报
回复
[Quote=引用 7 楼 ma_wangfy 的回复:]
我仔细考虑了一下,觉得可以开两个端口,一个专门接收对象,一个专门接收普通数据,不知道这样可不可行?
[/Quote]
不知道这样会不会引起数据不同步,比如说我先发送一对象,然后将该对象传送到客户端.然后再发送一普通数据,也发送到客户端.然后客户端用接收到的普通数据来操作接收到的对象.不知道普通数据会不会比对象先到,导致操作出错.
ma_wangfy
2010-01-31
打赏
举报
回复
我仔细考虑了一下,觉得可以开两个端口,一个专门接收对象,一个专门接收普通数据,不知道这样可不可行?
Java
UDP通信:
Datagram
Packet与
Datagram
Socket
详解
一、UDP协议简介 UDP(User
Datagram
Protocol)是
一个
简单的面向消息的传输层协议,尽管UDP提供标头和有效负载的完整性验证(通过校验和),但它不保证向上层协议提供消息
传递
,并且UDP层在发送后不会保留UDP 消息的状态。因此,UDP有时被称为不可靠的数据报协议。如果需要传输可靠性,则必须在用户应用程序中实现。 UDP是基于IP的简单协议,不可靠的协议。 UDP的优点:简单,轻量化。 UDP的缺点:没有流控制,没有应答确认机制,不能解决丢包、重发、错序问题。 综上所述,UDP使用
java
datagram
socket
,
Java
Datagram
Socket
和
Datagram
Packet
Java
Datagram
Socket
和
Datagram
Packet1
Java
Datagram
Socket
和
Datagram
Packet
Java
Datagram
Socket
和
Datagram
Packet类用于无连接
Socket
编程。2
Java
Datagram
Socket
类
Java
Datagram
Socket
类表示用于发送和接收数据报包的无连接
Socket
。
Datagram
Socket
基...
java
使用
Datagram
Socket
和
Datagram
Packet进行通信
一、
Datagram
Socket
Datagram
Socket
是使用UDP协议的
Socket
,它的作用是接收和发送数据包,但是它本身并不能产生IO流 1、创建
Datagram
Socket
对象
Datagram
Socket
() //创建
一个
数据包套接字,绑定到本机上任意
一个
可用的端口
Datagram
Socket
(
Datagram
Socket
Impl) //创建
一个
绑定的数据报套接字, 与指定的
datagram
socket
impl相关(一般不使用)
Datagram
Socket
(
Socket
Add.
Datagram
Socket
17.4.2 使用
Datagram
Socket
发送、接收数据
Datagram
Socket
本身只是码头,不维护状态,不能产生IO流,它的唯一作用就是接收和发送数据报,
Java
使用
Datagram
Packet来代表数据报,
Datagram
Socket
接收和发送的数据都是通过
Datagram
Packet
对象
完成的。 先看一下
Datagram
Socket
的构造器:
Datagram
So
Datagram
Socket
的学习
使用
Datagram
Socket
发送、接收数据
Datagram
Socket
本身只是码头,不维护状态,不能产生IO流,它的唯一作用就是接收和发送数据报,
Java
使用
Datagram
Packet来代表数据报,
Datagram
Socket
接收和发送的数据都是通过
Datagram
Packet
对象
完成的。 先看一下
Datagram
Socket
的构造器:
Datagram
Socket
():
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章