说明:因任务需求,需要进行海康VisionMaster服务端和Lua脚本客户端进行TCP通信传输数据。因为之前从未接触过Lua语言,所以也趁机学习一波。 内容Lua教程手册LuaSocket使用方法一方法二报错:“attempt to compare number with string” Lua教程手册https://www.runoob.com/lua/lua-tutorial.htmlLua
转载
2024-03-05 12:22:01
476阅读
LuaJIT源码分析(一)搭建调试环境 众所周知,LuaJIT是一个针对lua编程语言的即时编译器(JIT,Just-In-Time Compiler),它执行lua代码的速度相当的快。而网络上关于LuaJIT源码的资料相当地少,只能自己开一个坑,从头开始阅读了。万事开头难。想要分析源码,第一步肯定是要先搭建一个可以调试源码的环境出来。然而,就连这个第一步,网络上可参考的内容也很有限,大概是Lu
# 如何使用 JavaScript 实现 TCP 连接
在本教程中,我将向你展示如何使用 JavaScript 实现 TCP 连接。我们将使用Node.js,这是JavaScript的一个运行时环境,支持TCP连接。作为一个新手,你将学习到如何设置基本的TCP服务器和客户端。我们将从基本的流程开始,逐步深入。
## 流程概述
下面是我们实现TCP连接的主要步骤:
| 步骤 | 描述 |
|
1.全局环境_GLua将所有的全局变量保存在一个常规的table中,这个table被称为全局环境,并且将这个table保存在一个全局变量_G中,也就是说在脚本中可以用_G获取这个全局table,并且_G._G 和 _G是等价的,在默认情况,Lua在全局环境_G中添加了标准库比如math、函数比如pairs、print等2.局部环境_ENV编译器在编译所有代码段(chunk)前,在外层创建局部变量_
转载
2024-09-20 15:13:27
109阅读
lua源码学习笔记1. lua1) 基本数据类型2)lua是动态语言,提供了虚拟机;最终代码是以字节码的形式由解释器执行3)闭包4) lua和C的相互调用5) 协程6) 元表2. lua数据类型分析1) string2) userdata3) table4) 总结 1. lua1) 基本数据类型nil,number,string,userdata,function,thread,boolean,
转载
2024-09-29 20:07:13
482阅读
无涯教程网:Nginx Plus和Nginx可以持续测试我们的TCP upstream服务器,避免出现故障的服务器,并将恢复的服务器正常地包含在负载平衡组中。让我们看一下TCP健康检查的配置:1.我们在stream上下文中配置了一组TCP服务器,例如:stream {
#...
upstream stream_backend {
server backend1.exampl
转载
2024-04-06 16:33:19
71阅读
看了几天的源码,进度很慢,过于关注代码实现的细节了,反而很难看清整体结构。于是问诸google寻找方法。大体上分析源代码都要经历三遍过程,第一遍是浏览,通过阅读源码的文档和注释,阅读接口,先弄清楚每个模块是干什么的而不关心它是怎么做的,画出架构草图;第二遍是精读,根据架构草图把系统分为小部分,每个部分从源码实现自底向上的阅读,更深入细致的理解每个模块的实现方式以及与模块外部的接口方式等,弄明白模块
目录一、Lua注册表 - 实现机制l_registry二、Lua注册表 - 初始化init_registry三、Lua注册表 - 设置值lua_setfield四、Lua注册表 - 获取值lua_getfieldLua通过实现全局的注册表,来管理全局变量、C API扩展库的加载等信息。注册表主要通过Table的数据结构进行管理,所以注册表是一个多维数组的结构。本章我们主要讲解Lua的注册表的整体操
转载
2024-03-28 21:46:41
153阅读
这里只是列举了lua当中用到的c 语言的知识1. lua_KFunction这个类似c#中的委托 类型是lua_KFunction ,参数是后面三个比如 定义一个 lua_KFunction func1,就等于 声明了一个函数 int *func1 (lua_State,int,lua_KContext)2. char**ag
转载
2024-03-22 15:49:22
157阅读
好久没有在网上留言了。。。 背景介绍因为工作的需要,后台svr要能够动态修改更新,使用C当然没有问题,问题就在于修改源码后,需要重启服务。所以就想到在C里能够嵌入一种脚本,最好是和C无缝结合的。因此就想到使用到LUA,LUA的大名圈内人士应该早有耳闻,只不过一直没有机会接触。机缘巧合,有幸一见。 俗话说得好,耳闻不如一见。LUA使用起来还是很简单的,语法和普通的脚
转载
2024-03-31 12:07:14
73阅读
一,概念WebSocket的定义WebSocket是html5提供的一种在单个TCP连接上进行双向通信的协议,解决了客户端和服务端之间的实时通信问题。 浏览器和服务器只需完成一次握手,两者之间就可以创建一个持久性的TCP连接,此后服务器和客户端通过此TCP连接进行双向实时通信。WebSocket的优点很多网站为了实现数据推送,所用的技术都是ajax轮询。轮询是在特定的时间间隔,由浏览器主动发起请求
转载
2023-10-20 23:36:32
118阅读
最近做一个收集客户端数据的项目, 后台使用nginx, 通过实现nginx的模块来处理业务. nginx的模块编写不难,但写完后对nginx的内部机制还是云里雾里, 趁周末好好阅读一下nginx的源代码. 下面记录一些阅读过程中遇到的数据结构. 关于nginx的内部实现, 等看懂了源码再写.模块四要素:1 模块实例, 2 模块上下文, 3 模块指令, 4 指令
转载
2024-05-13 15:06:25
26阅读
版本整理日期:2011/3/27对lmathlib.c文件中的函数进行跟调。函数是那个不重要,这里选取math_abs/*
lmathlib.c
取出一个TValue,转成整型,然后fabs处理。TValue可能是字符串,也可能就是数字。
luaL_checknumber的行为是必返回一个number值
lua_pushnumber的行为是把结果进行压栈处理,具体怎么处理还不知道
ret
转载
2024-04-09 15:05:15
45阅读
本文分析基于Nginx-1.2.6,与旧版本或将来版本可能有些许出入,但应该差别不大,可做参考在Nginx中对array、list、queue、RB tree和hash表进行了实现,这些结构所涉及的内存管理都是在内存池中进行,源代码都位于src/core目录下。#Array# 相对来说,数组是Nginx中最简单的数据结构,它是在内存池中分配的,与语言原生的数组相比,增强了功能,使用时
转载
2024-02-25 17:29:21
37阅读
Nginx Plus和Nginx可以持续测试我们的TCP upstream服务器,避免出现故障的服务器,并将恢复的服务器正常地包含在负载平衡组中。让我们看一下TCP健康检查的配置:1.我们在stream上下文中配置了一组TCP服务器,例如:stream {
#...
upstream stream_backend {
server backend1.example.com:
转载
2024-03-30 16:33:59
109阅读
Linux下安装软件有三种方式,这里我以源代码编译安装为主。服务器最小化安装后,安装依赖包。 出于管理和安全的目的,我们希望使用一个指定的普通用户身份去运行我们的Web服务器。所以,我们首先增加一个普通用户用于运行我们的Nginx。 [root@master ~]# groupadd nginx
[root@master ~]#&nb
原创
2015-06-20 11:08:42
730阅读
nginx源代码总结: 1)代码中没有特别绕特别别扭的编码实现。从变量的定义调用函数的实现封装,都非常恰当。比方从函数命名或者变量命名就能够看出来定义的大体意义,函数的基本功能,再好的架构实如今编码习惯差的人实现也会黯然失色,假设透彻理解代码的实现,领悟架构的设计初衷,认为每块代码就想经过耐心雕琢一
转载
2017-05-26 13:45:00
124阅读
2评论
我看Nginx源代码的时候,感觉整个系统都在传递log指针。log在nginx里是比较关键的。日志和内存分配是最基础的两个起点代码,最好是在自己写的程序框架中早点完善并实现。以免未来要用大量的精力调整。 1. 日志的源代码位置 日志的源代码在src/code/ngx_log.c及ngx_log.h里。 2. 日志的初始化 在main()函数一开始,对一些基础数据进行初始化,其中之一就是
转载
2024-03-12 08:53:58
150阅读
目录一、Nginx的简介二、安装Nginx前的环境配置三、安装Nginx四、启动Nginx一、Nginx的简介Nginx是一个高性能的HTTP和反向代理服务器,它以其轻量级、低资源消耗和高并发处理能力而闻名。其关键特性包括:1、高性能:Nginx使用事件驱动的异步非阻塞模型,可以处理大量并发连接,而不会占用太多系统资源。 2、反向代理:作为反向代理服务器,Nginx可以将客户端的请求转发到后端服务
转载
2024-08-07 10:58:24
27阅读
1. 简介 lua-nginx-module(ngx_lua module)把 Lua5.1 的解释器 或 LuaJIT 2.0/2.1 的解释器嵌入到 nginx 中,将强大的 Lua 线程(Lua threads)与 nginx 事务模型(Nginx event model)相结合,我们可以更轻易的改变 子请求(subrequests)的处理过程。 与 Apache's mod_lua 和 L
转载
2024-05-12 12:05:58
244阅读