使用netcat调试TCP/UDP
前言
最近开发用到了 socket
,然后开发好了之后,会按照一定的规则发送数据,但是客户端还没开发。
这时候我想要连上 socket
去调试,看看都发了什么,有没有按照规则发送数据。却由于客户端没有开发好却没法调试。
经过一番查找,找到了 netcat(使用的命令是nc)
, 它可以用来连接 TCP
,恰好能满足我的需要,这样就非常方便,而不用等到客户端开发好了,才能调试。
最近开发用到了 socket
,然后开发好了之后,会按照一定的规则发送数据,但是客户端还没开发。
这时候我想要连上 socket
去调试,看看都发了什么,有没有按照规则发送数据。却由于客户端没有开发好却没法调试。
经过一番查找,找到了 netcat(使用的命令是nc)
, 它可以用来连接 TCP
,恰好能满足我的需要,这样就非常方便,而不用等到客户端开发好了,才能调试。
前不久 Meta
开源了Llama 2 - Meta AI ,并且是可商用的。
所以今天要在 Mac
上搭建 Llama
,由于 Llama
需要非常高的内存普通玩家玩不起,所以为了在 Mac
上跑起来就有了ggerganov/llama.cpp: Port of Facebook’s LLaMA model in C/C++ ,本文也是采用 llama.cpp
的方式进行部署。
前不久换了新 Mac
,性能还可以,于是就想试着体验一下 ChatGLM
,看看能不能跑起来。
所以今天就来体验一下 ChatGLM2-6B
。
近来,在使用 C++
写代码的时候经常会使用 Lambda
作为回调函数进行使用,在使用的过程中发现有些东西没弄懂。
就比如今天要说的,在 Lambda
中使用值捕获的情况下,捕获成员变量和局部变量是否一样,在 Lambda
内修改是否会影响外面的变量。
废话不多说,下面开始。
近来有个需求,需要从 zip
中提取一个文件出来,因为只用到其中的一个,其它的用不到,如果全部提取出来就有点多余了,在经过一番摸索发现还真可以。
Go
标准库里有 archive/zip
这个包,所以我们可以直接使用
做网络开发的时候如果服务端没开发好,通常会在本地搭一个简单的数据服务,这时候又不想改代码里的域名,就可以通过自定义 DNS
服务器来把对应的域名改为本地主机。
有时候有些广告非常恶心,不想看,可以通过自定义 DNS
把对应的域名的 IP 改为本地,由于本地没有对应的服务所以就加载不出来,也就看不到广告了。这也是广告拦截的原理。
有些域名和 IP 之间相对固定,这时候自建 DNS 服务还能起到加速的作用,避免域名劫持。
这些都可以通过改 /etc/hosts
文件来实现,但是如果你有多台设备都想做到一样的效果,每台机器都要配置一下就非常麻烦,所以,我们就希望搭建一个 DNS
服务来让局域网内的所的所有设备都可以享受到同样的待遇。
我经过一番搜索后发现了 CoreDNS
,它配置简单是一个灵活、可扩展的 DNS 服务器,旨在简化 DNS 管理并提供高性能的解析服务。它不仅具备传统 DNS 服务器的功能,还支持插件机制,可以轻松地集成到各种现代化的网络环境中。于是就试着用它搭建了 DNS
服务。
Cocos2d-x
默认不支持加载网络图片,而加载网络图片是一个常见的需求,本文简单的实现了加载网络图片。
加载一张网络图片需要以下几个步骤
Image
对象Image
对象初始化 Texture2D
对象Texture2D
对象创建一个精灵
|
|
通过以上的步骤,就可以在 Cocos2d
中加载网络图片并显示出来。
熟悉 Cocos2d
开发的应该都知道,在一个场景中如果有多个 Layer
,这些 Layer
一个一个的叠在上面,当我们点击 Layer
上的按钮的时候可以正常的触发对应的事件。
但是,当点击的位置所在的 Layer
没有事件要响应,这时候触摸事件就会传递到下面的 Layer
,这是我们所不希望的,在经过一番搜索之后,找到了一个不错的方案,分享一下。
在跨平台文件同步利器:使用Caddy搭建WebDav实现多设备间的无缝文件共中讲了如何使用 caddy
搭建 WebDav
服务,今天就来学一下如何在 caddy
中搭建静态文件服务器。
搭建一个静态服务器需要使用到 file_server
这个插件,这个插件是内置的,只要安装好了 caddy
就能够直接使用。
字符串在 C 语言中是一种常见的数据类型,以字符数组的形式存储。而 C 语言中的字符串以 \0
(空字符)作为结束符。然而, \0
的存在可能导致一些问题,特别是在处理包含 \0
的字符串时,常见的字符串处理函数可能会出现截断的情况。
最近就在字符串上踩了坑。
我在 iOS
上使用 beorg
来管理日程,所以经常需要在电脑和手机之间同步。
beorg
支持 iCloud
、 Dropbox
、 WebDav
等方式同步,使用 iCloud
是最简单的,但是我不想数据放到别人的服务器上面,所以我就不考虑了, Dropbox
就你懂的,所以就只剩下 WebDav
了。
WebDav 是一种基于 HTTP 协议的文件访问和管理技术,它提供了一种标准化的方式,使我们可以在网络上进行文件操作,如上传、下载、删除和重命名等。
我找了一圈看上了 Caddy
,它是一个功能强大且易于使用的 Web 服务器,它为搭建 WebDav 服务器提供了简洁而灵活的解决方案。所以今天就要用 Caddy
来搭建 WebDav
服务。
在 Android
开发中,要监听 EditText
输入内容的变化,可以通过 addTextChangedListener
方法来实现,非常方便。
但是在 Cocos2d
中要监听 TextField
却没有那么容易,我经过实验发现有两种方法可以达到同样的目的,一种是监听文本的输入事件、另一种是在每一帧里监听文本变化。
在 C++
中有许多第三方库可以解析 JSON,但是都不是很好用,不能像 Java
中的 gson 、 fastjson 一样直接把 JSON 直接转成对象。
找了许多库,找到了nlohmann/json: JSON for Modern C++使用起来比较方便,也踩了坑,来了解一下。
在 Cocos2d-x
中实现加载动画可以提高用户体验和应用程序的交互性。加载动画通常会显示在网络通信或资源加载等操作期间,以告知用户当前操作正在进行中。
可惜的是 Cocos2d
并没有提供这种操作,不像 Android 提供了 ProgressDialog
。
所以今天就来自己实现一个。
网络编程是开发中必不可少的一环, Cocos2d-x
提供了一个简单易用的网络模块,包括 HTTP
、 WebSocket
和 Socket
三种协议的支持。
它们都是基于标准的网络协议和 API 实现的,因此可以很容易地与其他网络库或服务端进行通信。
今天就来学习一下 HTTP
的使用。
上一篇把 Cocos2d
环境搭好了,今天来学习一下 Webview
的使用。
是的我最近在学习 Cocos2d-x
。你可能会有疑问,已经 2023 年了为什么还要学习 Cocos2d-x
?
Cocos2d-x
最新一次发布是在 2019-12-04,已经 3 年没更新了,这时候学习不是明智之举。
我最初知道 Cocos2d-x
的时候还是上大学那会,在极客学院学了不少知识,后面没什么场景会用到,就再也没使用过了。
我最近又学了是因为我们有个项目要提供 Cocos2d-x
的版本,这么多年过去我也没想到还会有一天要用到。
我在搭建环境碰到了一些问题,记录一下。
前段时间写 MoviePy
系列博客的时候,要把处理的视频效果展示出来,我按照图片的写法去写视频发现并不能渲染出来,然后又用 HTML
的方式发现还是不行,经过一番研究找到了办法。
之前的几篇文章讲了 MoviePy
的一些基本使用,发现没有裁剪视频中的一个区域的功能,然后去搜文档发现要使用 fx
函数进行变换,我经过实验发现了可以直接使用 crop
方法直接进行裁剪。
过几天就是情人节了,刚好最近在研究 MoviePy
,所以今天就来使用 MoviePy
画一个爱心,会动的。
废话不多说,直接看效果