当前位置: 代码迷 >> C# >> 关于UDP 接收缓冲区的一个小小疑点的啦~
  详细解决方案

关于UDP 接收缓冲区的一个小小疑点的啦~

热度:523   发布时间:2016-04-28 08:32:47.0
关于UDP 接收缓冲区的一个小小问题的啦~~~
刚开始学习socket编程。。。在UDP这一块有个小疑问,比如我有一个客户端,用UDP来接收服务端发来的数据,看下面代码

 DatagramSocket C_Socket = new DatagramSocket();
byte[] PacketB = new byte[1024];
 DatagramPacket ReceivePacket = new  DatagramPacket(PacketaB,PacketB.length);
C_Socket.receive(ReceivePacket);
//下面的各种代码。。。。。。。。。。。(抱歉这好像是java~ 不过没关系~ 语言都是共通的,原理都是一样的~~)

如果我设置的接收包缓冲为1024,没有数据发过来的时候是一直处于阻塞状态的,如果服务端发过来的一条数据只有byte[512]这么大,不满1024,程序还是会解除阻塞状态往下执行? 还是要一直等到1024的缓冲满了之后才往下执行?(抱歉,实在不太懂啦)

如果只要接收到数据,不管多大都会往下执行,如果数据量不大的情况下,只要估算一下服务端发送数据最大会是多少,然后接收端的缓冲只要比他大就OK了?。。。。。

多谢各种指点~~~谢谢啦~~
------解决思路----------------------
只要有发送都会就向下执行,对方发多少你就收多少,与服务端一样的
当然超出的部份会丢失,至于丢多少要看你底层协议支持接收多少个字节了。
  相关解决方案