From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Sockets, Streams, and Element_Arrays: Much confusion
Date: Sat, 31 Dec 2022 23:55:07 +0100 [thread overview]
Message-ID: <toqekb$1rd9$1@gioia.aioe.org> (raw)
In-Reply-To: de32dc82-ba42-4b27-a140-ddab9587219fn@googlegroups.com
On 2022-12-31 23:32, philip...@gmail.com wrote:
> I have to disagree here. UDP is perfectly fine for RPC-like (Remote Procedure Call) transactions on a local area network.
RPC and other synchronous exchange policies should be avoided as much as
possible.
Saying said that, implementation of RPC on top of streams is
incomparable more easier than on top of UDP.
> And it is orders of magnitude easier to implement on microcontrollers than TCP.
Not at all. You need:
- Safe transmission and error correction on top UDP;
- Buffering and sorting out incoming datagrams;
- Maintaining sequence numbers;
- Splitting messages that do not fit into a single datagram and
reassembling them on the receiver side;
- Buffering on the sender side to service resend requests.
This is extremely difficult and huge load for a microcontroller.
> Getting between Stream_Element_Array and a byte array is a pain and I wound up just looping over arrays, copying one byte at a time. If somebody has a better idea, let me know.
Use "in situ" conversion if you are concerned about copying. E.g.
pragma Import (Ada, Y);
for Y'Address use X'Address;
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2022-12-31 22:55 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-31 12:11 Sockets, Streams, and Element_Arrays: Much confusion Mark Gardner
2022-12-31 13:11 ` Dmitry A. Kazakov
2022-12-31 13:50 ` Mark Gardner
2022-12-31 14:16 ` Dmitry A. Kazakov
2022-12-31 15:18 ` Jeffrey R.Carter
[not found] ` <de32dc82-ba42-4b27-a140-ddab9587219fn@googlegroups.com>
2022-12-31 22:49 ` Jeffrey R.Carter
2022-12-31 22:55 ` Dmitry A. Kazakov [this message]
2022-12-31 17:39 ` Simon Wright
2022-12-31 19:36 ` Mark Gardner
2022-12-31 20:16 ` Dmitry A. Kazakov
2022-12-31 23:41 ` Simon Wright
2023-01-01 9:48 ` Dmitry A. Kazakov
2023-01-01 16:11 ` Simon Wright
2023-01-01 16:17 ` Niklas Holsti
2023-01-05 7:55 ` Daniel Norte de Moraes
2023-01-05 10:35 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox