小编The*_*454的帖子

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 ×1

gnat ×1

http ×1

http-headers ×1

sockets ×1