【发布时间】:2012-11-19 03:07:02
【问题描述】:
LinkedList<DatagramPacket> queue = new LinkedList<DatagramPacket>();
for (int i = 0; i < queue.size(); i++)
{
System.out.println("1: This prints.");
System.out.println("2: This doesn't: " + new String(queue.get(i).getData()));
int start = (new String(queue.get(i).getData())).indexOf("\r\n") + "\r\n".length();
data.concat(new String(queue.get(i).getData()).substring(start));
}
我们正在尝试从queue(数据包列表)中获取所有数据,并将它们全部放入一个字符串中。
但每当它到达第二个println(与它下面的行相同)时,程序就会挂起并且不做任何事情。
没有getData() 打印工作。例如。
System.out.printlin("2: This doesn't: " + new String(queue.get(i)));
此外,每当我将数据包添加到队列中时,我都会立即打印队列中的最后一个数据包,这样就可以了。
public void addPacket(DatagramPacket additional)
{
queue.add(additional);
System.out.println("1: " + new String(queue.getLast().getData()));
}
【问题讨论】:
-
猜,还没有来自cold^W,网络的数据
-
我已经收到数据包并在将其添加到队列之前将其打印,但现在当我们检索它时,它什么也不做。它不返回null,它只是挂起程序。
-
进行线程转储,然后检查调用
getData的线程卡在哪里。
标签: java udp linked-list packet datagram