The*_*454 1 sockets http ada http-headers gnat
我在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).
真的很感激一点帮助.提前致谢 :)
String’Output"将Item的值写入Stream,包括任何边界或判别式"(ARM 13.13.2(21)).
String 是一个不确定的类型,所以你试图输出的字符串确实有边界,你发送的是字符串的第一个字符的索引作为一个4字节的二进制数,该字符串的最后一个字符的索引string作为4字节的二进制数,然后是字符串.
请String’Write改用(参见ARM 13.13.2(9)).
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |