DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦3d2afd5ba⟧ TextFile

    Length: 2374 (0x946)
    Types: TextFile
    Names: »B«

Derivation

└─⟦bad92a95e⟧ Bits:30000535 8mm tape, Rational 1000, RPC 1_0_2
    └─ ⟦bb34fe6e2⟧ »DATA« 
        └─⟦15d8b76c6⟧ 
            └─⟦this⟧ 

TextFile

with Text_Io;
with Transport;
with Transport_Defs;
with Utils;
with Byte_Defs;
procedure Server is
    Status : Transport_Defs.Status_Code;
    Count : Natural;
    Connection : Transport.Connection_Id;
    Data : Byte_Defs.Byte_String (1 .. 256);
    function "=" (L, R : Transport_Defs.Status_Code) return Boolean
        renames Transport_Defs."=";
begin
    loop
        Transport.Open (Connection => Connection,
                        Status => Status,
                        Network => "TCP/IP",
                        Local_Socket => Transport_Defs.Socket_Id'(4, 86));


        Text_Io.Put_Line ("status after open: " &
                          Transport_Defs.Image (Status));

        if Status = Transport_Defs.Ok then
            Transport.Connect (Connection => Connection,
                               Status => Status,
                               Max_Wait => Duration'Last);

            Text_Io.Put_Line ("status after connect: " &
                              Transport_Defs.Image (Status));


            while Status = Transport_Defs.Ok loop
                Transport.Receive (Connection => Connection,
                                   Status => Status,
                                   Data => Data,
                                   Count => Count,
                                   Max_Wait => Duration'Last);

                Text_Io.Put_Line ("status after receive: " &
                                  Transport_Defs.Image (Status));


                if Status = Transport_Defs.Ok then
                    Text_Io.Put_Line ("Received " & Utils.Byte_String_To_String
                                                       (Data (1 .. Count)));

                    Transport.Transmit
                       (Connection => Connection,
                        Status => Status,
                        Data => Utils.String_To_Byte_String
                                   ("Received " & Integer'Image (Count)),
                        Count => Count,
                        Max_Wait => Duration'Last,
                        More => False);
                    Text_Io.Put_Line ("status after send: " &
                                      Transport_Defs.Image (Status));

                end if;
            end loop;

        end if;
        Transport.Close (Connection);
        delay 10.0;
    end loop;
end Server;
pragma Main;