`
myten
  • 浏览: 134171 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Julia之快速构建HTTP服务

阅读更多

Julia首先是个计算机编程语言,其次才是它宣称的面向科学计算的语言。

所以,计算机编程语言所必须的I/O肯定是要有的,文件的I/O下一篇文章讲,今天就讲网络I/O。

 

 先引入一段超级强大的官版HTTP代码

using Pkg
Pkg.add("HTTP")
using HTTP
HTTP.listen() do request::HTTP.Request
   @show request
   @show request.method
   @show HTTP.header(request, "Content-Type")
   @show HTTP.payload(request)
   println(typeof(request))
   try
       return HTTP.Response("Hello,Julia")
   catch
       return HTTP.Response(404, "Error: $e")
   end
end

 各位看官,这就是http服务了,只要运行这段代码,然后访问本地IP:8081就可以在浏览器里看到Hello,Julia了。

扶好自己的下巴,接着听我说,目前这个还欠缺路由映射的功能,MVC的功能。补全这些是不是就是 spring-julia-mvc框架了呢?当然还要有并发异步的能力。别的好像也就不差什么了。

至于怎么补全成为一个JuliaMVC框架,菜鸟自己海补去,高手明白就好,补不补全看兴趣了。

 

介绍完了HTTP,接下来说说Socket吧,还是上代码

using Sockets
@async begin
server = listen(2001)
  while true
     sock = accept(server)
     @async while true
       write(sock,readline(sock))
     end
  end
end

 上面代码就是一个Socket Server了,而且是多线程的,因为加了@async 这个神奇的关键字。这真的是个加分项,是个超级大胆且前卫的设计。很明显这段代码构建了一个很简单的应答服务器,客户端连接后,输入啥,服务器就返回啥。就是个Mirror Server。我们拿nc 测试一下。没有nc的,自己装去,不懂nc是啥的自己脑补去。

lybdeMacBook-Pro:~ lyb$ nc 127.0.0.1 2001
Hello,this is nc test
Hello,this is nc test

 如上测试,用nc连接后,输入Hello,this is nc test 回车,服务返回了同样的内容,到此就已经证明julia socket server成功了。至于要用socket做什么事情,那就要制定协议和编码咯。就像开头的HTTP,也就是在socket之上做了对HTTP协议的实现而已,不过我还是很佩服的,一个很年轻的语言,已经有人花功夫去开发周边了。我可没工夫,还是拿来主义好啊,当然了,要拿好的。

分享到:
评论

相关推荐

    在Julia中构建推荐系统_TeX_Julia_下载.zip

    在Julia中构建推荐系统是一项高效且具有挑战性的任务,因为Julia作为一种高性能的动态编程语言,特别适合数值计算和科学计算。这个压缩包“在Julia中构建推荐系统_TeX_Julia_下载.zip”可能包含了一个名为...

    Fuji.jl:用Julia编写的轻量级Web服务器

    `Fuji.jl` 是一个基于 Julia 语言开发的轻量级Web框架,专为快速构建高效、简洁的Web应用而设计。作为Julia生态的一部分,它充分利用了Julia的高性能特性,提供了一个简洁的接口来处理HTTP请求和响应,使得开发者...

    Julia 集合。

    标题 "Julia 集合" 指的是 Julia 语言中的集合数据类型。在 Julia 中,集合是一种存储和操作一组唯一元素的数据结构。这些集合包括数组(Array)、字典(Dict)、集(Set)等。集合是编程中常用的概念,它们允许我们...

    Julia for Data Science.pdf

    Julia的数据可视化能力也是其重要的特点之一。Julia提供了多种可视化工具,如 Gadfly、Plots.jl 等,这些工具提供了丰富的绘图选项和定制功能,能够生成高质量的静态和交互式可视化图表。这对于展示数据发现和数据...

    JuliaPro安装包.txt

    除了强大的功能外,JuliaPro 还提供了丰富的文档和教程资源,帮助新手快速上手,并为高级用户提供深入的技术指南。 #### 四、JuliaPro 使用技巧 ##### 4.1 快速启动 Jupyter Notebook 安装完成后,在命令行中输入 ...

    julia:轻量级高性能http服务器

    - **动态性与便利性**: Julia是动态类型的,允许快速迭代和实验,同时提供了丰富的内建函数和高级数据结构。 - **并行计算**: Julia内置了对多线程、多进程和分布式计算的支持,这对于构建高并发的HTTP服务器至关...

    Julia-cheatsheet

    通过这份Julia速查表,可以快速掌握Julia编程语言的基础知识和常用操作,对于学习和实践编程特别有帮助。需要注意的是,由于文档内容的OCR扫描识别不完全准确,部分表达可能存在误差,因此在实际应用中应参照Julia的...

    JuliaPro_v1.4.2-1_build-276.zip

    6. **扩展性**:Julia 的包管理系统允许开发者轻松安装和更新扩展库,构建复杂的应用程序。 **JuliaPro** IDE 提供了以下优势: 1. **集成开发环境**:提供代码编辑器、调试器、性能分析工具等,使得开发过程更为...

    Atom-atom-language-julia,atom编辑器的julia语言支持包.zip

    Atom是一款由GitHub开发的开源文本编辑器,它利用了现代Web技术构建,为开发者提供了丰富的自定义可能性和高效的代码编辑体验。"Atom-atom-language-julia.zip" 是一个专门为Atom编辑器设计的语言支持包,专注于...

    CUDA高性能GPU计算Julia集代码

    它具有快速、动态、易于阅读和编写的特点,尤其适合数值计算和数据分析。Julia集成了许多现代编程语言的优点,如Python的易用性、Rust的内存安全和C++的高性能。 当CUDA与Julia结合时,可以创建出能在GPU上高效运行...

    各种刚体动力学和运动学算法的Julia实现_julia_代码_下载

    RigidBodyDynamics.jl 是纯 Julia 中的刚体动力学库。它的目标是用户友好和高性能,但在算法可以使用任何(合适的)标量类型的输入调用的意义上也是通用的。这意味着如果需要快速的数值动态评估,用户可以提供Float...

    Julia数据科学应用随书数据

    数据科学是一门涉及统计学、机器学习和编程的交叉学科,而Julia以其快速执行速度、易于理解和交互性,成为了这个领域中越来越受欢迎的工具。 让我们详细了解一下压缩包内的三个文件: 1. **Spam Assassin**:这...

    Julia中的快速低秩矩阵逼近_Julia_下载.zip

    本资源"Julia中的快速低秩矩阵逼近"提供了一个名为"LowRankApprox.jl-master"的代码库,可能是用于实现高效低秩矩阵近似算法的包。 低秩矩阵逼近的基本思想是将一个高维的大矩阵表示为一个小误差的低秩矩阵组合,...

    ch3_4.julia.rar_Julia C

    6. **ch3_4.julia.py**:这个Python文件可能是整个项目的一部分,负责OpenGL的设置、场景构建以及渲染控制。它可能调用了PyOpenGL库来与OpenGL交互,生成并显示Julia集合的图像。 7. **ges.txt**:此文件可能是配置...

    Recommendation.jl:在Julia中构建推荐系统

    `Recommendation.jl` 是一个专门针对推荐系统开发的Julia库,它提供了一套高效且灵活的工具,帮助开发者在Julia环境中快速构建和测试推荐系统模型。 Julia是一种高性能的动态编程语言,特别适合于数值计算和科学...

    Fortune算法、Lloyd算法和梯度下降的Julia实现应用

    通过掌握这些算法的Julia实现,开发者可以在各种实际场景中构建高性能的应用程序,从而在IT行业中占据优势。在mac0499-master这个项目中,很可能包含了这些算法的示例代码和详细解释,供开发者参考和学习。

    NaquadahBrowser:从头开始以Julia语言构建的Web浏览器

    总的来说,NaquadahBrowser是一个展示Julia语言在构建复杂软件系统能力的实例,尤其是在GUI和网络应用领域。通过这个项目,开发者不仅可以学习到Julia语言的实践应用,还可以深入了解Web浏览器的工作原理,包括GUI...

    matlab中inv的函数代码-node-julia:快速轻松地访问节点中嵌入的Julia

    快速轻松地访问嵌入在节点中的Julia。 安装 首先安装,然后 npm install node-julia 构建模块后,安装程序将在命令路径上的julia开头的几个标准位置搜索Julia。 假定julia lib目录位于julia可执行文件所在位置的标准...

    Optim.jl, Julia优化函数.zip

    该库的“构建状态”可能指的是其持续集成(CI)的状态,这通常意味着代码在每次提交时都会自动测试,以确保新添加的功能不会破坏现有的功能。这对于保持库的稳定性和可靠性至关重要。 总结来说,`Optim.jl` 是一个...

    在Julia中 实现 PRML算法_julia_代码_下载

    2. **动态类型与类型系统**:Julia的动态类型允许快速迭代和开发,同时其强大的类型系统可以实现编译时优化,提高运行速度。在实现PRML算法时,可以灵活定义数据结构,以适应各种模型的需要。 3. **多重-dispatch**...

Global site tag (gtag.js) - Google Analytics