Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 为什么我会得到;hPutChar:资源消失”;来自简单Haskell网络代码的错误?_Macos_Sockets_Haskell - Fatal编程技术网

Macos 为什么我会得到;hPutChar:资源消失”;来自简单Haskell网络代码的错误?

Macos 为什么我会得到;hPutChar:资源消失”;来自简单Haskell网络代码的错误?,macos,sockets,haskell,Macos,Sockets,Haskell,我试着运行一些来自今天的示例代码: 不同的运行将给出不同数量的这些消息。我是否做错了什么,这是一个bug,还是一种正常的预期行为?这基本上意味着您的服务器在未完成交换的情况下关闭了连接;这不应该是故意的行为。您链接到的wiki页面说明了这段代码:«依赖运行时调度器及时唤醒主线程»。也许这并不总是发生。你是如何编译你的程序的?你使用了-threaded运行时吗?@Zeta是的,我使用了-threaded-rtsopts-和rtsopts=-N。 import Network import Cont

我试着运行一些来自今天的示例代码:


不同的运行将给出不同数量的这些消息。我是否做错了什么,这是一个bug,还是一种正常的预期行为?

这基本上意味着您的服务器在未完成交换的情况下关闭了连接;这不应该是故意的行为。您链接到的wiki页面说明了这段代码:«依赖运行时调度器及时唤醒主线程»。也许这并不总是发生。你是如何编译你的程序的?你使用了
-threaded
运行时吗?@Zeta是的,我使用了
-threaded-rtsopts-和rtsopts=-N
import Network
import Control.Concurrent
import System.IO

main = withSocketsDo $ do
    sock <- listenOn $ PortNumber 5002
    loop sock

loop sock = do
   (h,_,_) <- accept sock
   forkIO $ body h
   loop sock
  where
   body h = do
       hPutStr h msg
       hFlush h
       hClose h

msg = "HTTP/1.0 200 OK\r\nContent-Length: 5\r\n\r\nPong!\r\n"
ep1: <socket: 29>: hPutChar: resource vanished (Broken pipe)
ep1: <socket: 29>: hPutChar: resource vanished (Broken pipe)
ep1: <socket: 29>: hPutChar: resource vanished (Broken pipe)
ep1: <socket: 29>: hPutChar: protocol error (Protocol wrong type for socket)