Код | public static void ReceiveFrom4() { IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 9999); Socket s = new Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint senderRemote = (EndPoint)sender; s.Bind(endPoint); byte[] msg = new Byte[4]; int r=0; try { r=s.ReceiveFrom(msg, 0, msg.Length, SocketFlags.None, ref senderRemote); } catch(Exception e) { Console.WriteLine(e.Message); } Console.WriteLine(Encoding.ASCII.GetString(msg, 0, msg.Length)+" size="+r.ToString()); s.Close(); }
|
не могу понять как мне считать определенное количество байт функцией ReceiveFrom. она кидает мне исключение так как данных приходит больше чем размер буфера
Цитата | "A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself"
|
что является странным, так как я явно указал размер буфера. я хочу сделать так скачала скачиваю DWORD например в котором храниться размер потом кусочками качаю все остальное. на сях у меня с одноименной функой проблем нет.
направьте в нужное русло |