HESSIAN 的VC++ 客户端与JAVA服务端通信 实现

本文详细介绍了如何使用CURL库与JAVA服务端通过HESSIAN协议进行通信,包括流程、关键步骤及遇到的问题解决。通过实例演示了如何封装HTTP请求和接收响应,最终成功实现了数据交换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HESSIANVC++ 客户端与JAVA服务端通信实现

最近碰到一项目,需要与JAVA服务端通信,JAVA服务端使用的协议是HESSIAN。没听过,谷歌一下找到其官方网站(http://hessian.caucho.com/)简略一看,类似于C#web servers,二进制WEB服务,再谷歌一下,效率比web servers 要高和SOCKET 差不多。

转正题,官方文档支持C++实现(不支持你丫也好意思)下了源码大致看了下,baidu一把,支持hessian支持HTTP协议,将协议封装在HTTP封包中,通过HTTP信道传送。因为他是采用二进制编码没有多余的数据,数据量比SOAP协议少得多(这个项目还用到SOAP协议)。     既然支持HTTP协议,心想支持当然可以用MFC里面封装好的HTTP 类库来处理CHttpConnection 和CInternetSession  看了下HESSIAN源码 无非就是装传入字符串进行转化 再POST到服务端,下了一个demo 改一下,一调 服务端 返回确实是返回了,不过返回的是 500错误(未知的服务器错误) ,找半天也不知道什么原因,继续GOOGLE之,发现了CURL 这个好东东(http://curl.haxx.se/),支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS 这多协议。这NB,但哥不会用啊。又只好看例子,下demo 好吧弄着一调,服务端一调可以了。废话说完,进入正题。主要流程如下:

调用 start_call(method)对要远程调用的方法名运行字符转换,具体转换可以看hessian源码

调用 set_parameter(mc,param)将参数字符串进行转换 并和转换后的远程方法名进行拼接。

调用complete_call(string strParam) 为字符串设置结束标识 加z

传出数据准备完成。该主角登场CURL

调用curl_easy_setopt分别设置CURLOPT_URL CURLOPT_POSTFIELDS, CURLOPT_POSTFIELDSIZE  参数含义参见官方网站,

_res=curl_easy_perform(_curl) 向远程网站发送http封包

若返回成功 调用hessian_input 里面的 函数 接收数据

auto_ptr<input_stream> sis(new string_input_stream(_http_result));

 hessian_input hes_in(sis);

 hes_in.start_reply();

 result = hes_in.get_result();

 hes_in.complete_reply();

好吧完事了 看着蛮容易,实际也不是太难,主要是之前不知道还有CURL这个东东。如果还需要帮助可以发邮件给我luoj166@163.com  。下一篇写VC++调用JAVA 的webservers 带HTTP 头验证

 

 

资源下载链接为: https://pan.quark.cn/s/140386800631 通用大模型文本分类实践的基本原理是,借助大模型自身较强的理解和推理能力,在使用时需在prompt中明确分类任务目标,并详细解释每个类目概念,尤其要突出类目间的差别。 结合in-context learning思想,有效的prompt应包含分类任务介绍及细节、类目概念解释、每个类目对应的例子和待分类文本。但实际应用中,类目和样本较多易导致prompt过长,影响大模型推理效果,因此可先通过向量检索缩小范围,再由大模型做最终决策。 具体方案为:离线时提前配置好每个类目的概念及对应样本;在线时先对给定query进行向量召回,再将召回结果交给大模型决策。 该方法不更新任何模型参数,直接使用开源模型参数。其架构参考GPT-RE并结合相关实践改写,加入上下文学习以提高准确度,还使用BGE作为向量模型,K-BERT提取文本关键词,拼接召回的相似例子作为上下文输入大模型。 代码实现上,大模型用Qwen2-7B-Instruct,Embedding采用bge-base-zh-v1.5,向量库选择milvus。分类主函数的作用是在向量库中召回相似案例,拼接prompt后输入大模型。 结果方面,使用ICL时accuracy达0.94,比bert文本分类的0.98低0.04,错误类别6个,处理时添加“家居”类别,影响不大;不使用ICL时accuracy为0.88,错误58项,可能未修改prompt有关。 优点是无需训练即可有较好结果,例子优质、类目界限清晰时效果更佳,适合围绕通用大模型api打造工具;缺点是上限不高,仅针对一个分类任务部署大模型不划算,推理速度慢,icl的token使用多,用收费api会有额外开销。 后续可优化的点是利用key-bert提取的关键词,因为核心词语有时比语意更重要。 参考资料包括
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值