This is an appendix to Understanding Unix/Linux
Programming
written for people interested in Ada programming on POSIX
systems.
The procedure Receive_Socket in
GNAT.Sockets can be used to receive a datagram:
procedure Receive_Socket (Socket : in Socket_Type;
Item : out Ada.Streams.Stream_Element_Array;
Last : out Ada.Streams.Stream_Element_Offset;
From : out Sock_Addr_Type;
Flags : in Request_Flag_Type := No_Request_Flag);
The procedure Send_Socket in GNAT.Sockets
can be used to send a datagram:
procedure Send_Socket (Socket : in Socket_Type;
Item : in Ada.Streams.Stream_Element_Array;
Last : out Ada.Streams.Stream_Element_Offset;
To : in Sock_Addr_Type;
Flags : in Request_Flag_Type := No_Request_Flag)
% make dgrecv dgsend [...] % ./dgrecv 4444 & [1] 10554 % ./dgsend localhost 4444 "testing 123" dgrecv: got a message: testing 123 from: 127.0.0.1:3611 %
Receive_SocketHow much can you trust the data you receive from
Receive_Socket?
This modified version of dgrecv sends a reply whenever
it receives a datagram: dgrecv2.adb
The next chapter isn't ready yet.
Understanding Unix/Linux Programming, Bruce Molay,
ISBN 0-13-008396-8.