【发布时间】:2013-10-13 21:41:52
【问题描述】:
我知道 TCP 模拟流,因此通常会在收到任何数据后立即开始读取。这就是为什么我使用这个 sn-p 来确保它在处理之前等待整个数据包
int packetSize = inputStream.readShort() ;
byte packetBuffer[] = new byte[packetSize];
int byteTrans = 0;
while ( byteTrans < packetSize )
{
inputStream.read( packetBuffer , byteTrans , 1 );
byteTrans++;
}//
但是,对于 UDP,我还需要解决同样的问题吗?我不这么认为,因为 TCP 基本上通过将数据分解成更小的数据包并发送它来模拟流,而在 UDP 中,您可以更好地控制整个过程。
为了阅读我使用的 UDP
byte[] packetByte = new byte[packetSize];
DatagramPacket packet = new DatagramPacket(packetByte, packetByte.length);
socket.receive(packet);
我是否必须为 UDP 实现类似的系统?
【问题讨论】:
标签: java sockets networking tcp udp