gpt4 book ai didi

sockets - D-将数据发送到套接字

转载 作者:行者123 更新时间:2023-12-03 11:56:27 26 4
gpt4 key购买 nike

我在D中有以下原始服务器:

import std.stdio; 
import std.socket;

int main() {

const int port = 8080;

InternetAddress addr = new InternetAddress(InternetAddress.ADDR_ANY, port);
TcpSocket server = new TcpSocket(AddressFamily.INET);

server.bind(addr);
server.listen(10);


for(;;) {

Socket newclient = server.accept();

newclient.send("HTTP/1.1 200 OK\r\n");
newclient.send("Content-type: text/html\n\n");
newclient.send("Hi from D!");

newclient.shutdown(SocketShutdown.BOTH);
newclient.close();
}



return 0;
}

如果我连接浏览器,它不会显示“Hi From D!”,而只是断开连接。

我的假设是send()缓冲数据,而我必须刷新该缓冲区。但是我还没有弄清楚你会怎么做。有趣的是,如果使用writefln(“asdf asdf\n”);向STDOUT写入一些数据,该代码将起作用。在send()的最后一次调用之后,因此是我的假设。

还是我吠错了树?

最佳答案

您的代码实际上对我有用....但是无论如何,一些更改可能会有所帮助:

1)在响应中添加Content-length header

2)使用\r\n\r\n结束标题,而不是\n\n。

如果这些方法无济于事,则可能是防火墙或类似问题阻止了您的连接。

关于sockets - D-将数据发送到套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13827869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com