【发布时间】:2014-06-12 16:30:56
【问题描述】:
我正在尝试通过 UDP 实现从笔记本 (Linux) 到 Android 设备的数据传输。
在我启动的笔记本上:
cat /home/me/my/file.txt | nc -u 192.168.150.3 12345
或者:
nc -u 192.168.150.3 12345 < /home/me/my/file.txt
得到相同的结果。
在 Android 设备上,我的代码是:
byte[] msg = new byte[100000];
DatagramPacket p = new DatagramPacket(msg, msg.length);
DatagramSocket s = new DatagramSocket(portNumber);
s.receive(p);
message = new String(msg, 0, p.getLength());
s.close();
如果我在“message =”行设置断点,我可以看到 msg.length = 100000。没错。但是 p.getLength() 只有 2048。这意味着我只传输了一部分数据。我的意思是“消息”不包含“file.txt”中的所有数据。为什么会这样?我做错了什么?
【问题讨论】:
标签: java android udp transfer netcat