[英]Starting TCP server in Haskell
我正在嘗試根據haskell.org上提供的示例在 Haskell 中創建一個 TCP 服務器。 當我使用ghc run Main.hs
從終端運行代碼時,我得到:
[1 of 1] Compiling Main ( Main.hs, Main.o )
Linking Main.exe ...
之后它關閉。
代碼
module Main where
import Network.Socket
import Network.Socket.ByteString
import qualified Data.ByteString.Char8 as C
main::IO()
main=do
sock<-socket AF_INET Stream 0
bind sock (SockAddrInet 8100 iNADDR_ANY)
listen sock 2
mainloop sock
mainloop::Socket->IO()
mainloop sock=do
conn<-accept sock
runConn conn
mainloop sock
runConn::(Socket,SockAddr)->IO()
runConn (sock,_)=do
Network.Socket.ByteString.send sock (C.pack "hello")
close sock
我首先假設服務器可能以某種方式在后台運行,所以我使用Simple Web Socket Client
- 瀏覽器擴展和 nada 對其進行了測試。
測試網址ws://localhost:8100
您需要在編譯二進制文件后執行它們:Linux 上的./Main
或 Windows 上的Main.exe
。
然后你可以請求你的服務器感謝telnet localhost 8100
telnet localhost 8100 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. helloConnection closed by foreign host.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.