小编Sha*_*rk8的帖子

Ada条目和语句使用时间

我是Ada编程语言的新手,我正在进行并发编程,但我遇到了一个实现的问题.这可能是一个非常虚拟的问题.代码是:

type status is array(1..6) of boolean; --boolean values for each track
track_available :status:=(others=>true); --true if track is available
protected track_handler is

entry track_req(n:in track_part_type); --n is track number
entry track_rel(n:in track_part_type); --n is track number

end track_handler;


protected body track_handler is
--implement entries
entry track_req(n: in track_part_type) when track_available(n) is --here where the error occurs
    begin
        req(n);
    end track_req;

entry track_rel(n: in track_part_type) when track_available(n) is
    begin
        rel(n);
    end track_rel;
end track_handler;

    procedure req(nr : track_part_type) is
    begin
        --null; …
Run Code Online (Sandbox Code Playgroud)

ada

8
推荐指数
1
解决办法
2288
查看次数

如何使用“separate”关键字

我无法弄清楚separateAda 中的关键字及其深度概念。请举个小例子帮助我理解?

假设我有一个嵌套过程

with ada.text_io; use ada.text_io;
procedure main is
   procedure proc is
   begin
      put_line ("i am proc");
   end proc;
begin
   put_line ("main");
end main;
Run Code Online (Sandbox Code Playgroud)

如何使用单独的关键字?

ada

5
推荐指数
1
解决办法
4433
查看次数

Ad-'at'和'range'是什么意思/做什么?

我正在调试一些软件,这些软件分为两部分 - 一部分用C++编写,另一部分用于Ada,我以前从未使用过.

在阅读一些Ada代码并查找包含粒子数据的变量时,我发现这些变量recordfor循环中使用,例如:

for myRecord use
    record
        eta    at    8    range    0 .. 31;
        ttg    at    16   range    0 .. 63;
    end record;
Run Code Online (Sandbox Code Playgroud)

atrange是在IDE(GPS- GNAT编程工作室),我以为粗体意味着它们的关键字/在Ada的特定的含义......有人可以给我解释一下这个结构是什么/呢?这里的数字是否与分配给变量/内存位置的内存量有关?

record ada data-structures

2
推荐指数
1
解决办法
636
查看次数

Ada - 使用GNAT.Sockets发送HTTP响应

我在ADA中通过套接字发送标题时出现问题.这是代码:

    Address.Addr := Addresses(Get_Host_By_Name(Host_Name), 1);
    Address.Port := 80;
    Create_Socket(Server);
    Set_Socket_Option(Server, Socket_Level, (Reuse_Address, True));
    Bind_Socket(Server, Address);
    Listen_Socket(Server);
    Accept_Socket(Server, Socket, Address);
    Channel := Stream(Socket);

    Receive_Socket(Socket, Data, Offset);
    for I in 1 .. Offset loop
        Append(Request, Character'Val(Data(I)));
    end loop;

    String'Output(Channel, 
         "HTTP/1.1 200 OK" & CRLF & 
         "Date: Fri, 09 Jan 2015 01:08:54 GMT" & CRLF & CRLF & 
         "something"
      );
Run Code Online (Sandbox Code Playgroud)

我用作客户端Firefox浏览器.当我通过套接字读取GET请求时,这一切都很棒.当我尝试发送响应时,问题出现了.在引用代码的最后一行之后,我的浏览器只获得HTTP/0.9 200 OK(通过Live HTTP头检查)并且根本没有显示任何内容(这对我来说有点奇怪,因为我只是发送HTTP/1.1 200 OK).

真的很感激一点帮助.提前致谢 :)

sockets http ada http-headers gnat

1
推荐指数
1
解决办法
411
查看次数

标签 统计

ada ×4

data-structures ×1

gnat ×1

http ×1

http-headers ×1

record ×1

sockets ×1