haskell实现多线程服务器实例代码

yipeiwu_com6年前服务器

复制代码 代码如下:

module Main where

import Network.Socket
import Control.Concurrent

main :: IO ()
main = do
    sock <- socket AF_INET Stream 0
    bindSocket sock (SockAddrInet 4242 iNADDR_ANY)
    listen sock 10240
    mainLoop sock

mainLoop :: Socket -> IO ()
mainLoop sock = do
    conn <- accept sock
    forkIO $ runConn conn
    mainLoop sock

runConn :: (Socket, SockAddr) -> IO ()
runConn (sock, tcp) = do
    sms<-recv sock 1024
    peeraddr <- getPeerName sock
    putStrLn sms
    runConn (sock, tcp)

相关文章

详解Python操作RabbitMQ服务器消息队列的远程结果返回

详解Python操作RabbitMQ服务器消息队列的远程结果返回

先说一下笔者这里的测试环境:Ubuntu14.04 + Python 2.7.4 RabbitMQ服务器 sudo apt-get install rabbitmq-server...

在IIS服务器上以CGI方式运行Python脚本的教程

在IIS服务器上以CGI方式运行Python脚本的教程

由于接触到Python Web开发,正好把最简单的CGI方式研究了一下,话说在Windows下配置Python的Web开发还真的蛮麻烦的,Linux下配置倒挺容易,正好微软有技术文章《U...

PHP准确取得服务器IP地址的方法

本文实例讲述了PHP准确取得服务器IP地址的方法。分享给大家供大家参考。具体分析如下: 在php中,我们一般通过$_SERVER['HTTP_HOST']来活得URL中网站的域名或者ip...

Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器

最近在做的一个项目中需要使用到HTML5中引入的WebSocket技术,本来以为应该很容易就能搞定,谁知道在真正上手开发了以后才发现有很多麻烦的地方,虽然我们是一个以前端开发和设计见长的...

php 判断服务器操作系统的类型

一:php有许多系 统预定义变量,通过判断他们可以简单的判断服务器系统是 windows还是*unix, 其中相关的函数或者预定义变量如下:php_uname()、PHP_OS、DIRE...