openresty中使用lua-nginx创建socket实例

   这篇文章主要介绍了openresty中使用lua-nginx创建socket实例,本文直接给出代码实例和运行效果,需要的朋友可以参考下

  Lua语言太强大了,至少我是这样觉得的。原始的Lua没有Socket功能,需要使用者下载Lua socket组件,require一下才行。而lua-nginx模块自带了socket功能,而且是100%的非阻塞模式,再次感谢作者章亦春。

  使用socket功能很简单,只有几个简单的方法即可主要就是有TCP和UDP的区别。(这里只是lua文件,其他请见Hello world 文章)

   代码如下:

  local sock = ngx.socket.tcp()

  local ok,err = sock:connect('whois.cnnic.net.cn',43)

  if not ok then

  ngx.say('Failed to connect whois server',err)

  return

  end

  sock:settimeout(5000)

  local ok, err = sock:send("baidu.cnrn")

  if not ok then

  ngx.say('Failed to send data to whois server', err)

  return

  end

  local line, err, partial = sock:receive('*a')

  if not line then

  ngx.say('Failed to read a line', err)

  return

  end

  ngx.print(line)

  完美运行:

时间: 2024-09-11 07:35:44

openresty中使用lua-nginx创建socket实例的相关文章

openresty中使用lua-nginx创建socket实例_Lua

Lua语言太强大了,至少我是这样觉得的.原始的Lua没有Socket功能,需要使用者下载Lua socket组件,require一下才行.而lua-nginx模块自带了socket功能,而且是100%的非阻塞模式,再次感谢作者章亦春. 使用socket功能很简单,只有几个简单的方法即可主要就是有TCP和UDP的区别.(这里只是lua文件,其他请见Hello world 文章) 复制代码 代码如下: local sock = ngx.socket.tcp() local ok,err = sock

CentOS6.4 安装OpenResty和Redis 并在Nginx中利用lua简单读取Redis数据

1.下载OpenResty和Redis OpenResty下载地址:wget http://openresty.org/download/ngx_openresty-1.4.3.6.tar.gz Redis下载地址:wget http://download.redis.io/releases/redis-2.8.6.tar.gz 2.安装依赖包 yum install -y gcc gcc-c++ readline-devel pcre-devel openssl-devel tcl perl

Openresty服务器使用lua脚本写的Hello World简单实例

  这篇文章主要介绍了Openresty服务器使用lua脚本写的Hello World简单实例,OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器.它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项,需要的朋友可以参考下 Openresty提供了丰富的接口和变量给Lua,开发者可以充分利用Lua语言特性和这些接口进行高效率开发.万事开头难,但是对于编程来说能写出Hello world就已经算是成功一半了. 1.安装openr

Openresty服务器使用lua脚本写的Hello World简单实例_Lua

Openresty提供了丰富的接口和变量给Lua,开发者可以充分利用Lua语言特性和这些接口进行高效率开发.万事开头难,但是对于编程来说能写出Hello world就已经算是成功一半了. 1.安装openresty 2.配置nginx 复制代码 代码如下: server {      listen 80;      server_name localhost;        #charset koi8-r;        #access_log logs/host.access.log main

Java的一个Socket实例在TCP通信中只能单工?!!

问题描述 RT我做的是Android客户端(好吧,我还是想在JavaSE板块来问,因为问题出在Java的Socket上)与C#编写的服务器端进行数据交互单独测试Android发送.C#接收,或者,C#发送.Android接收,都没问题现在我想这么做:(1)Android发送一组数据,由C#来接收(2)C#处理之后,发送一组数据返回给Android(3)Android接收之后,显示给用户现在(1),(2)都正常,问题出在(3)我的Android端的流程是这样的:<1>获得socket实例的Out

Lua 操作 MongoDB 数据库实例

这篇文章主要介绍了Lua 操作 MongoDB 数据库实例,本文给出了修改后的lua-mongo API和具体的操作MongoDB 数据库代码,需要的朋友可以参考下     最近有个工作是使用Nginx + Lua实现一个操作MongoDB数据库的API,主要实现其count和query功能.之前没有写过Lua,于是也就勉强着上手,在cloudwu的 lua-mongo 的基础上实现了操作MongoDB的API. cloudwu的lua-mongo驱动实现了连接Mongo,进行find和find

在JAVA中使用LUA脚本记,javaj调用lua脚本的函数(转)

最近在做一些奇怪的东西,需要Java应用能够接受用户提交的脚本并执行,网络部分我选择了NanoHTTPD提供基本的HTTP服务器支持,并在Java能承载的许多脚本语言中选择了很久,比如Rhino,Jython和JRuby之类,但它们都太过庞大,并且很难实现沙盒保护服务器环境.最后我的目光投向了Lua,那个被称为粘合剂的语言.遇到的第一个难题是选择所使用的库,纯Java实现的Lua解释器有很多,什么LuaJ,LuaJava,kahlua,还有不知名的mochalua,jill等等(好多好多),其中

《高性能Linux服务器构建实战》——1.5节Nginx常用配置实例

1.5 Nginx常用配置实例Nginx作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apache的所有功能.下面就介绍一些Nginx常用的配置实例,具体包含虚拟主机配置.负载均衡配置.防盗链配置以及日志管理等. 1.5.1 虚拟主机配置实例下面在Nginx中创建3个虚拟主机,需要说明的是,这里仅仅列出了虚拟主机的配置部分. http { server { listen 80; server_name www.domain1.com;

ASP.NET中根据XML动态创建并使用WEB组件(一)

asp.net|web|xml|创建|动态 ASP.NET中根据XML动态创建使用WEB组件 (一) 作者:厉铁帅 前段时间笔者在开发中需要动态创建WEB组件,本以为是小事一桩,谁知看时容易做时难.里面还真有些小问题.下面笔者就结合自己的程序来介绍一下如何动态创建并使用WEB组件,希望能给做类似工作的朋友提供一点帮助. 一.程序思路 程序主要分三部分: 1.程序要根据XML中的数据信息确定需要创建的WEB组件的个数. 2.动态创建WEB组件. 3.使用动态创建的WEB组件. 其中2和3是笔者要重