hp socket 网络库如何构造 extra 用户数据包含不定长字符串的方法

By terrorist at 2022-06-30 • 0人收藏 • 195人看过

如何装一个不定长的字符串? 就是指针, 并且要控制指针的释放,所以要用动态指针

import util.metaProperty;

namespace aaz.libhpsocket.app.userData;
class str{
    
ctor(s){
        
this@ = _metaProperty;
        
if(s){
            
if(type(s) != type.string){
                
error("参数@1必须是字符串",2)
            }
            
this.value = s; 
        }
    }
    pointer pValue; 
}
namespace str{
    _metaProperty = ..util.metaProperty(
        value = {
            _get = 
function(){
                
if(owner.pValue){
                    
return ..raw.str(owner.pValue); 
                }
            }
            
            _set = 
function(v){
                
if(v===null){
                    
if(owner.pValue){
                        
owner.pValue = ..raw.realloc(0, owner.pValue)
                    }
                    
return ; 
                }
                
owner.pValue = ..raw.realloc(#v, owner.pValue, v);
            }   
        };
    )   
}


使用:

import aaz.libhpsocket.app.userData;
import aaz.libhpsocket.app.userData.str;

namespace aaz.libhpsocket.app.websocket.client;
class userData{
    
ctor(wsPath, wsOrigin){
        
this = ..aaz.libhpsocket.app.userData();
    }
    free = 
function(){
        
this.wsKey.value = null;
        
this.wsPath.value = null;
        
this.wsOrigin.value = null
    }
    struct wsKey = ..aaz.libhpsocket.app.userData.str();
    struct wsPath = ..aaz.libhpsocket.app.userData.str(wsPath);
    struct wsOrigin = ..aaz.libhpsocket.app.userData.str(wsOrigin);
}


具体案列请看 https://htmlayout.cn/t/21357

1 个回复 | 最后更新于 2022-07-02
2022-07-02   #1

感谢分享,请问您的

hp socket 网络库

是包含了全部hpsocket的内容吗,还是只有部分

登录后方可回帖

登 录
信息栏
公告:
个人博客
专注分享
可在分享中适当提问
谢绝纯提问
否则不再提醒一律
删帖
谢谢合作!



本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
Loading...