MSNP10协议分析 04.Session [by progsoft]

Unreal 5 MetaHuman插件全流程:从安装到角色动画生成 本文详细介绍了Unreal 5中MetaHuman插件的全流程使用指南,从安装配置到角色动画生成。通过Quixel Bridge下载预设角色,利用面部捕捉技术赋予数字人模型生命力,并提供材质编辑、性能优化等进阶技巧,帮助用户快速创建照片级真实的虚拟角色。 阅读详情

在MSN里发信息(发文件,视频聊天等)都是建立在Session的,所以我们必须建立Session连接,否则我们是不能发送/接收信息的。

我们有两个途径可以创建Session连接:
一、用户主动向另外用户发送Session请求
二、用户接受另外用户发送的Session请求

接下来我分别介绍这两种途径,一、用户主动向另外用户发送Session请求,先我还是给出一个成功的案例

<NS Connect>
>>>  XFR 10 SB/r/n
<<<  XFR 10 SB 207.46.108.53:1863 CKI 17220274.1093571988.7262/r/n
</NS Connect>

<SS Connect 207.46.108.53:1863>
>>>  USR 1 example@hotmail.com 17220274.1093571988.7262/r/n
<<<  USR 1 OK example@hotmail.com usernick/r/n

>>>  CAL 2 user01@hotmail.com/r/n
<<<  CAL 2 RINGING 17220274/r/n
<<<  JOI user01@hotmail.com user01_nickname/r/n

到这里我们可以看到自己(example@hotmail.com)和另外一个用户(user01@hotmail.com)已经成功连接到同一个Session了,离发送消息只有一步了。

下面详细解释一下
第一步是请求Session服务器地址
客户端发送>>>  XFR 10 SB/r/n
语法结构:
XFR<SP>TrID<SP>SB<CRLF>
表示告诉DS服务器,客户端需要建立Session连接,请给连接地址和Session串
服务器回应<<<  XFR 10 SB 207.46.108.53:1863 CKI 17220274.1093571988.7262/r/n
语法结构:
XFR<SP>TrID<SP>SB<SP>IP:PORT<SP>CKI<SP>Session串<CRLF>
表示请求的SS服务器为IP:PORT,连接串为Session串

第二步是连接SS服务器
<SS Connect 207.46.108.53:1863>

第三步是发送连接Session请求
客户端发送>>>  USR 1 example@hotmail.com 17220274.1093571988.7262/r/n
语法结构:
USR<SP>TrID<SP>用户passport<SP>Session串<CRLF>
表示用户(example@hotmail.com)要连接Session,Session串即刚才请求DS服务器给的Session串
服务器回应<<<  USR 1 OK example@hotmail.com usernick/r/n
语法结构:
USR<SP>TrID<SP>OK<SP>用户passport<SP>用户呢称<CRLF>
表示用户(example@hotmail.com)已经连接Session成功

第四步就是邀请聊天用户进入Session
客户端发送>>>  CAL 2 user01@hotmail.com/r/n
语法结构:
CAL<SP>TrID<SP>用户passport<CRLF>
表示邀请用户(user01@hotmail.com)连接Session
服务器回应<<<  CAL 2 RINGING 17220274/r/n
语法结构:
CAL<SP>TrID<SP>RINGING<SP>Session1<CRLF>
表示邀请用户(user01@hotmail.com)的请求以被服务器接受
Session1表示Session串的第一部分
服务器回应<<<  JOI user01@hotmail.com user01_nickname/r/n
语法结构:
语法结构:
JOI<SP>用户passport<SP>用户呢称<CRLF>
表示用户(user01@hotmail.com)已经连接Session成功

这样就可以开始我们信息发送和接受了。

注意:第三、四步和后面发送/接受信息是在SS服务器的,同时DS服务器连接一直要保持,否则我们将会登出。


接下来我再介绍第二个途径,二、用户接受另外用户发送的Session请求,同样还是给出一个成功的案例
<NS Connect>
<<<  RNG 465209 207.46.108.93:1863 CKI 1093597464.30080 user01@hotmail.com user01_nickname/r/n
</NS Connect>

<SS Connect 207.46.108.93:1863>
>>>  ANS 1 example@hotmail.com 1093597464.30080 465209/r/n
<<<  IRO 1 1 2 user01@hotmail.com user01_usernick/r/n
<<<  IRO 1 2 2 user02@hotmail.com user02_usernick/r/n
<<<  ANS 1 OK/r/n

下面详细解释一下:

第一步获得Session连接邀请
这一步是被动获得,只有等待DS服务器发送邀请,所以只有服务器回应
服务器回应<<<  RNG 465209 207.46.108.93:1863 CKI 1093597464.30080 user01@hotmail.com user01_nickname/r/n
语法结构:
RNG<SP>Session串1<SP>IP:PORT<SP>CKI<SP>Session串2<SP>用户passport<SP>用户呢称<CRLF>
RNG表示Session请求
Session串1和Session串2,为Session通行证,连接Session用
用户passport和用户呢称表示邀请的用户帐户和呢称

第二步是连接SS服务器
<SS Connect 207.46.108.93:1863>

第三步是回应连接Session请求
客户端发送>>>  ANS 1 example@hotmail.com 1093597464.30080 465209/r/n
语法结构:
ANS<SP>TrID<SP>用户passport<SP>Session串2<SP>Session串1<CRLF>
表示用户(example@hotmail.com)同意连接Session,Session串1和Session串2即刚才请求DS服务器给的Session串
服务器回应<<<  IRO 1 1 2 user01@hotmail.com user01_usernick/r/n
服务器回应<<<  IRO 1 2 2 user02@hotmail.com user02_usernick/r/n
语法结构:
IRO<SP>TrID<SP>会话序号<SP>会话总数<SP>用户passport<SP>用户呢称<CRLF>
表示已经在会话中的用户信息反馈
会话序号,表示已有用户在该会话中的序号
会话总数,表示该会话中,已经存在的用户总数(不包括自己)
用户passport和用户呢称,表示在会话的用户帐户和呢称
服务器回应<<<  ANS 1 OK/r/n
语法结构:
ANS<SP>TrID<SP>OK<CRLF>
表示用户(example@hotmail.com)已经连接该Session成功

这样也就可以开始我们信息发送和接受了。

注意:第三步和后面发送/接受信息是在SS服务器的,同时DS服务器连接一直要保持,否则我们将会登出。

从Gcode命令看3D打印机的‘大脑’:Marlin/Klipper固件是如何执行你的指令的? 本文深入解析3D打印机固件Marlin和Klipper如何执行Gcode指令,从语法解析到运动控制算法,再到温度管理,详细揭示了从指令到物理动作的转化过程。通过对比两大固件的设计哲学和性能优化技巧,帮助用户更好地理解和调优3D打印机的核心控制系统。 阅读详情

相关推荐

OpenClaw记忆插件升级实战:从memory-lancedb-pro安装到AgentSkill封装

向量数据库作为现代AI应用的核心基础设施,通过将非结构化数据转换为高维向量并利用相似度检索实现语义理解。其原理基于嵌入模型生成向量表示,结合近似最近邻搜索算法实现高效查询。这项技术为智能体系统提供了长期记忆和上下文感知能力,显著提升了对话连贯性与任务执行效率。在AI智能体开发领域,向量数据库常用于知识库构建、对话历史管理和个性化推荐等场景。本文聚焦OpenClaw框架中memory-lancedb-pro插件的部署实践,针对**插件加载顺序**和**Apache Arrow依赖**两大常见痛点,通过封装成可

weixin_42525482的博客 638

MSNP10协议分析 01.登录 [by progsoft]

  先给出一个成功登陆的案例 messenger.hotmail.com, port 1863 (连接分配服务器DS)>>>  VER 1 MSNP10 MSNP9 CVR0/r/n>>>  CVR 2 0x0804 winnt 5.0 i386 MSNMSGR 6.2.0133 MSMSGS example@hotmail.com/r/n>>>  USR 3 TWN I example@

ProgSoft 3859

DRAM刷新refresh相关知识归类-基础小知识(三)

RAM每一位数据都是通过芯片内的一个小电容充电(或低电平)存储的。但随着时间的推移,电容逐渐失去电荷。为避免丢失存储的数据,必须定期刷新以将电荷(如果存在)恢复到其原始级别。此刷新过程包括读取每个位的值,然后将其写回。在此“刷新”期间,内存被占用,无法执行加载或存储位等正常操作。知道了应该这么做,但怎么去做以及有什么办法更有效率去做,就是接下来要整理的内容。

Paul 安的博客 1万+

MSNP10协议分析 02.同步 [by progsoft]

先给出一个成功同步案例>>>  SYN 8 0 0/r/n歇口气,我们已经获得好友列表成功~!下面我们给出一个说明。在本操作过程中,实现客户端同步服务器数据客户端发送>>>  SYN 8 0 0/r/n服务器回应2004-06-24T02:30:09.5170000-07:00,指出最后好友改变时间2004-07-15T05:59:26.8770000-07:00,指出最后分组改变时间

ProgSoft 1830

FreeSWITCH编译安装详细文档

本文档详细介绍了在Ubuntu 22.04系统上从源码编译安装FreeSWITCH的完整流程。主要内容包括:1)系统环境准备和依赖库安装;2)关键依赖库spandsp和sofia-sip的编译安装;3)FreeSWITCH源码的特定版本(v1.6.0)编译配置,包括禁用SignalWire模块的配置方法;4)系统服务配置,包括创建专用用户、设置权限以及配置systemd服务文件。文档特别提供了版本控制说明,确保后期能切换到相同的版本环境,并附有详细的命令操作步骤和注意事项。

唯有代码让我痴狂 1369

从零开始掌握OBD-II:汽车诊断开发的核心技术与实战解析

本文深入解析OBD-II汽车诊断系统的核心技术,包括ECU通信协议、故障码解析及诊断工具开发实战。通过详细的协议分析和代码示例,帮助开发者快速掌握汽车诊断开发技能,实现从零到精通的进阶。特别适合从事汽车电子开发和OBD检测的技术人员参考学习。

weixin_42528780的博客 438

MSNP10协议分析 05.文本信息 [by progsoft]

下面的介绍分为发送和接收至此你应该可以建立Session了,如果不行,请重新阅读前面文档。一、发送文本信息客户端发送>>>   MSG 3 N 119/r/n  MIME-Version: 1.0/r/n  Content-Type: text/plain; charset=UTF-8/r/n  X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF

ProgSoft 1868

[特殊字符] 智能补货(AI-driven Replenishment)完整实施方案

补货量=预测需求+安全库存−当前库存补货量 = 预测需求 + 安全库存 - 当前库存补货量=预测需求+安全库存−当前库存。:基于 LSTM/Transformer 预测未来 30/60/90 天的销量。

nbsaas-boot基于Request-Response的企业级快速开发框架 968

MSNP10协议分析 06.帐户验证 [by progsoft]

在MSNP8之前,帐户验证是采取的MD5加密后直接传送。然而到MSNP9之后,帐户验证改为更加安全的SSL。下面直接介绍帐户验证的全过程:第一步,与nexus.passport.com:443的交互。客户端连接 nexus.passport.com:443 (Passport Nexus)客户端发送>>>   GET /rdr/pprdr.asp HTTP/1.0/r/n/r/n 服务

ProgSoft 2324

【STK】手把手教你利用STK进行覆盖分析02-生成详细分析报告和图表

这篇文章主要针对上一篇文章中最后的案例1进行进一步的说明,详细介绍我们可以生成哪些结论性的成果。STK的Coverage模块的生成结果包括分析报告和图表两种样式,每种样式还分为动态和静态两种,也就是说,我们做完一个STK覆盖场景的仿真后,一般可以生成静态分析报告、动态分析报告、静态分析图表和动态分析图表这4种形式的分析成果,下面进行详细介绍。我们在选择了想要分析的区域或者点后,就可以利用CovDef生成分析报告了,覆盖定义的分析报告分为静态报告和动态报告两种,下面分析进行介绍: 首先我们先在左侧目标浏览器C

weixin_44184852的博客 3443

OpenCV实战之人脸美颜美型(八)——大眼(上)

从大众审美的角度来看,眼睛适当的“变大”会让人显得更加年轻。因此美型中就有一项大眼功能,其效果就是让眼睛适当变大,这章内容就围绕着大眼算法展开。

On my way 1211

MSNP10协议分析 03.状态 [by progsoft]

先给出一个改变用户状态案例>>>  CHG 9 NLN 805306412 %3Cmsnobj%20Creator%3D%22example%40hotmail.com%22%20Size%3D%2224049%22%20Type%3D%223%22%20Location%3D%22TFRC79.dat%22%20Friendly%3D%22AAA%3D%22%20SHA1D%3D%22S4g

jiljil的专栏 2516

[系统安全] 十六.PE文件逆向基础知识(PE解析和PE编辑工具)

您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~ 作者前面介绍了三个漏洞,包括Chrome浏览器保留密码渗透解析、通过Chrome浏

杨秀璋的专栏 1万+

MSNP10协议分析 00.基本 [by progsoft]

    1999年,Microsoft向IETF提交了一份"MSN Messenger Service 1.0 Protocol"草案,这是最初版本的MSN Messenger协议。    现在MSN版本为6.2,协议版本为MSNP10,本文着重介绍MSNP10的基本情况。    文章以作者分析研究体会为主,同时参考他人资料完成。    MSN的协议都是基于TCP,除P2P的文件传输和语音对话等,

ProgSoft 2273

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MSN 研究进度 (一)

完成部分: 1. 用户登录 2.收发信息 3.添加、删除、阻止好友 4.登录状态改变 5.收发文件(当接收方为有效ip,或双方在同一局域网内,即可以直接连接) 等等 需要完成部分: 1. 收发文件(双方连接不上的情况) 2. 用户自定义图片(基本等同与收发文件) 3. 用户基本信息修改(电话号码,联系方式) 4. 修改分组(新建,修改,删除) 5. 好友分组间移动 6. 语音视频聊天 等等   时

ProgSoft 1519

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

多重启动+去广告修改方法 for MSN Messenger V6.X

允许多重启动: Find: 00 00 00 0F 85 9C 00 00 00 Edit: 00 00 00 0F 86 9C 00 00 00 去除广告位: (1) Find: 89 5D FC 74 13 6A Edit: 89 5D FC EB 13 6A (2) Find: 84 C0 74 0A 8B 4E Edit: 84 C0 EB 0A 8B 4E

ProgSoft 1012

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

理解 Linux 动态库加载:LD_LIBRARY_PATH

flyfish

二分掌柜的 379

0.4 文件与文件夹:数据是怎么存放的,一篇讲清目录树

电脑里几万个文件怎么归类?本文讲清文件是有名字的数据单位、文件夹(目录)是可层层嵌套的收纳容器,二者共同构成目录树,最顶层是根目录;建立字节/KB/MB/GB 的大小直觉,介绍 Linux 一切皆文件的设计;用一张表讲清复制、移动、重命名、删除的区别,以及 Delete 进回收站、Shift+Delete 永久删除的差异;最后从安全视角讲文件上传(伪装脚本上传即 WebShell)与路径穿越(ZipSlip 把文件写到敏感位置),提醒凡是文件读写都要警惕路径被操纵。

一个安全白帽子的成长记录:Web 安全、漏洞复现、内网渗透。完整目录在 gysec.top 224

【Linux网络】TCP 服务器并发处理多客户端:从 fork 分发到双重 fork 彻底消灭僵尸进程

拆解 TCP 服务器并发演进链:fork 分发连接、SIGCHLD 循环回收僵尸、双重 fork 交孙进程给 init 收养,并给出模型选型与线上排错对照。

2301_78967866的博客 430

LangGraph 本地 build 频频翻车,最终在服务器跑通流式对话

先说结论:我本地那个,一次都没成功过。三次,三次,全挂在拉镜像上。而顺得像刚上过油。这就很像我高中那辆自行车:骑着能走,一上锁就坏。那天晚上我盯着终端里那行红字看了很久,想的不是技术方案,想的是——为什么同一个工具,可以一边让我觉得自己很行,一边让我觉得自己不太行。

人工智能AI技术 119

【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork

本文详解多进程TCP服务器的实现原理,从单进程并发瓶颈出发,通过fork分离连接接收与服务职责。重点解析文件描述符继承机制、僵尸进程问题及双重fork解决方案,最终构建高效、稳定的多进程服务器模型,并说明服务器重启时可能因端口未释放导致绑定失败的原因。

2402_87731470的博客 2407

自建 Git 服务器和裸仓库差在哪:要能提合并请求

在一台 Linux 上 git init --bare 就能自建 Git 服务器,但它只能推拉代码,没有网页、合并请求、评审和按仓库分配的权限。对照裸仓库和 AngusGit 各自能做什么,再走一遍在 AngusGit 上发起合并请求的最短路径,以及已有裸仓库怎么完整搬过来。

AngusTester 325

VSCode_RemoteSSH_一直卡在下载服务器_解决教程

解决VSCode远程一直卡在下载服务器

m0_69395553的博客 109

架设一台NFS服务器

3、将/home/tom目录仅共享给192.168.100.136这台主机,并只有用户tom可以完全访问该目录。注意:tom是一个用户目录,并且在客户端创建tom用户一定与服务端的tom用户的uid/gid保持一致。2、开放/nfs/upload目录,为192.168.100.0/24网段主机可以上传目录,并将所有用户及所属的组映射为nfs-upload,其UID和GID均为210。1、开放/nfs/shared目录,供所有用户查询资料。架设一台NFS服务器,并按照以下要求配置。

2401_87595340的博客 241

Linux epoll 一篇讲透:从 select/poll 到红黑树、LT/ET,再到完整 TCP 服务器

一万个客户端已经连上服务器,眼下只有十个客户端发来了数据。服务器怎样把时间花在这十个连接上?理解这个问题,就抓住了 epoll 的主线。接下来,我们沿着“为什么需要它 → 接口怎么用 → 内核如何实现 → LT/ET 怎么写 → 完整服务器怎么运行”的顺序,把知识连起来。**阅读基础:**了解socketbindlistenaccept的基本用途即可。本文示例面向 Linux,服务器使用 C++17,实验脚本使用 Python 3。

2601_94861874的博客 203
上一篇: MSNP10协议分析 03.状态 [by progsoft]
下一篇: MSNP10协议分析 05.文本信息 [by progsoft]
progsoft
博客等级 码龄23年 8粉丝 21原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值