作者henry035 (Rex)
看板java
标题[问题] Socket等待逾时与封包大小的问题
时间Tue Nov 4 09:36:24 2008
想向板上的大大们请益两个问题
1. 要怎麽写「等待接收封包时间是有限制」的程式码呢?
也就是说,等待接收封包,过了一阵子没收到封包後就不等了,
然後可以知道逾时没收到封包,然後显示讯息接续其他程式码之类的?
(Socket/MulticastSocket 有哪些现成可用的 method 吗?)
2. 有没有办法动态调整接收封包的大小呢?
因为我的接收封包,是用来接收字串的,每次都不固定大小,
我又用固定大小的阵列 (byte[1024]) 来存取,
输出到萤幕的时候,後面会接一堆空白,
有什麽好办法处理呢?甚至可以侦测实际收到的封包大小呢?
以下是用 MulticastSocket 与 DatagramPacket 接收封包
(应该与一般的 Socket 差不多)
MulticastSocket mSocket;
DatagramPacket pack;
byte data[] = new byte[1024];
try{
// 准备接收封包
pack = new DatagramPacket(data,data.length,group,port);
// 等待接收封包
mSocket.receive(packReceive);
// 输出
String str = new String(data,"UTF8");
System.out.println(str);
}catch(Exception e){
System.out.println(e);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.18.7