php通讯hpsocket,HP-Socket 远程通信 服务端 客户端 源码

本文分享了使用HP-Socket进行PHP通信的实践,包括服务端和客户端的创建、事件处理、数据发送与接收。在处理乱码问题后,已成功在云服务器上运行。通过示例代码展示了如何设置回调函数和处理不同事件,如OnPrepareListen、OnAccept、OnSend、OnReceive和OnClose。
摘要由CSDN通过智能技术生成

本帖最后由 佛守瓜 于 2017-2-14 21:56 编辑

HP-Socket 开源的,dll才371k,内嵌到资源里也不大.

纯分享干货.

还有个小问题没搞定,请大家一起来折腾.

问题描述: 发消息时有时会乱码.如:

第一次发123456789,没事

第二次,修改了文本内容加个0,发1234567890,服务端输出收到的内容就乱码了

再比如,先发abcdefg,然后再发abcdefgh,也乱码 .

再比如,直接发0123456789,就会乱码

尝试过的解决方法:

个人认为是发送文本内容的取长度问题导致的,也有可能是以0开头或以0结尾导致的

# 取长度

string.len() 取长度

string.indexOf() 取最后一个字符

split() 取上限

折腾不容易,愿意分享更不容易,且研究且珍惜------------------------------------------------------------------------------------------------------------------------------------

继续更新:

HP_FN_Server_OnClose = function(pSender, dwConnID, enOperation, iErrorCode){

//需要处理,不然客户端退出时服务端会崩溃

}

------------------------------------------------------------------------------------------------------------------------------------更新:乱码问题已解决,放云服务器上也能跑起来了。let's go!

------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------

21482fe5f1735e57525def3160b161b3.gif

QQ截图20170214131241.png (9.69 KB, 下载次数: 82)

2017-2-14 13:13 上传

/*

--------------------------------------------------------------------------------------

HP-Socket 官方网站:http://www.jessma.org

HP-Socket 项目主页:http://www.oschina.net/p/hp-socket

HP-Socket 开发文档:http://www.oschina.net/p/hp-socket/doc

HP-Socket 源代码下载地址:https://github.com/ldcsaa/HP-Socket

.net虽然提供了socket通信的类库,但是还有很多事情要自己处理,比如TCP协议需要处理分包、组包、粘包、心跳检测、维护连接列表等,

UDP协议需要处理到达确认、乱序、维护连接列表等问题,而且对于多连接并发,还要自己处理多线程,

对于很多不清楚socket通信细节的人来说,很难自己写出一个稳定高效的socket通信组件。

HP-Socket的PACK模型基于TCP协议,自动处理分包、组包、粘包、心跳检测等,使得应用程序只需要专注于业务逻辑处理,非常的实用,

而且HP-Socket项目经过几年的沉淀,还是被证明非常的稳定,免费、开源、稳定、高效、详细的文档,无论从哪方面看,HP-Socket都应该算的上国产优秀的开源项目。

HP-Socket 的PACK模型自动处理了TCP协议socket通信的分包、组包、粘包、心跳等,对于一些没有特殊要求的应用是很好的选择.

--------------------------------------------------------------------------------------

0. (C/C++ 程序)包含 HPTypeDef.h / HPSocket4C.h 头文件

1. 调用 ::Create_HP_XxxListener() 函数创建监听器对象

2. 调用 ::Create_HP_Xxx(pListener) 函数创建 HPSocket 对象

3. 调用 ::HP_Set_FN_Xxx_OnYyy(pListener, ...) 函数设置监听器的回调函数

4. 调用相关导出函数操作 HPSocket 对象

5. ...... ......

6. 调用 :

6e53002e350bc90e9fad29b3ae48ea56.gifestroy_HP_Xxx(pSocket) 函数销毁 HPSocket 对象

7. 调用 :

6e53002e350bc90e9fad29b3ae48ea56.gifestroy_HP_XxxListener(pListener) 函数销毁监听器对象

--------------------------------------------------------------------------------------

[服务端]

1、创建 TcpPackServer 对象

2、绑定事件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值