我是新手,我正在尝试测试代码here(使用Redis事件循环)

但是,当我向127.0.0.1:8000发出请求时,服务器未发送响应,则挂起。我需要做些改变吗?我只需要回显该示例所要完成的请求。

最佳答案

您为什么认为这是HTTP服务器?它不是。这是一个损坏的TCP回显服务器。

它被破坏了,因为写操作不在事件循环的控制之下。如果非阻塞写操作无法发送所有字节,则某些字节将丢失(您没有这样的保证)。

现在,如果您使用适当的客户端,则仍可以演示该程序:

$ telnet 127.0.0.1 8000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
toto
toto
titi
titi
tutu
tutu

... while the output of the program itself is:

Accepted 127.0.0.1:48645

如果您想玩事件循环,建议您从以下列表中选择一个。它们可能比在github上发现的第一个随机ae黑客要好得多...
  • libevent
  • libev
  • libuv
  • 关于c - HTTP服务器与Redis事件循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18042415/

    10-10 14:25