java 数据报_Java将Java对象作为数据报包接收

我想将一个对象作为UDP数据包发送,然后在服务器上接收该对象 . 我有客户端想出来,但我不能让服务器正确读取数据报 .

客户代码:

public void sendMessage() {

ByteArrayOutputStream bStream = new ByteArrayOutputStream();

try {

ObjectOutput oo = new ObjectOutputStream(bStream);

oo.writeObject(asset);

// Send it

byte[] serializedMessage = bStream.toByteArray();

DatagramPacket sendPacket = new DatagramPacket(serializedMessage,

serializedMessage.length, ipAddress, sPort);

clientSocket.send(sendPacket);

oo.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

服务器失败尝试 .

public void startServer() {

try {

serverSocket = new DatagramSocket(this.serverPort);

serverSocket.receive(new DatagramPacket()); /*Code fails here, I realise

* the constructor does not have input, but I can not figure out how to init

*a buffer whose size I do not know beforehand.

*/

this.threadPool.execute(new QueryTask(packet));

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

问题2:收到并解析数据包后创建新线程是否更好?还是应该通过Datagrampacket创建带有DatagramSocket的新线程?

提前致谢 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值