资源介绍:
源码利用易语言服务器和客户组件实现简易通信效果。
我爱自学易语言
.版本 2
.程序集 网络封包
.程序集变量 m_Data, 字节集
.程序集变量 m_DataLen, 整数型
.程序集变量 m_errno, 整数型
.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用
m_errno = 0
.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用
.子程序 clear, , 公开
m_Data = { }
m_DataLen = 0
m_errno = 0
.子程序 init, , 公开
m_Data = { }
m_DataLen = 0
m_errno = 0
.子程序 erase, , 公开
.参数 length, 整数型
m_DataLen = 取字节集长度 (m_Data) - length
m_Data = 取字节集右边 (m_Data, m_DataLen)
.子程序 peek, 逻辑型, 公开
m_errno = packet_check ()
.如果真 (m_errno = 0)
返回 (真)
.如果真结束
返回 (假)
.子程序 errno, 整数型, 公开
返回 (m_errno)
.子程序 packet_check, 整数型, 公开, 0 可读取 1 等待写入 -1 错误
.局部变量 length, 整数型
.局部变量 magic, 整数型
' ----------------
' int magic
' int length
' byte data[length]
' ----------------
.如果真 (m_DataLen < 8)
返回 (1)
.如果真结束
magic = 取字节集数据 (m_Data, #整数型, 1)
.如果真 (magic ≠ 305419896) ' magic = 0x0ODEDEAD
返回 (-1)
.如果真结束
length = 取字节集数据 (m_Data, #整数型, 5) ' check length >= data length
.如果真 (length < 0)
返回 (-1)
.如果真结束
.如果真 (length > 10240)
返回 (-1)
.如果真结束
.如果真 (m_DataLen - 8 < length)
返回 (1)
.如果真结束
返回 (0)
.子程序 append, , 公开
.参数 data, 字节集
m_Data = m_Data + data
m_DataLen = 取字节集长度 (m_Data)
.子程序 read, 字节集, 公开
.局部变量 data, 字节集
.局部变量 length, 整数型
data = { }
.如果真 (peek () = 假)
返回 (data)
.如果真结束
length = 取字节集数据 (m_Data, #整数型, 5)
data = 取字节集中间 (m_Data, 9, length)
erase (length + 8)
返回 (data)
.子程序 write, , 公开
.参数 data, 字节集
.局部变量 length, 整数型
.局部变量 magic, 整数型
.局部变量 packet_data, 字节集
magic = 305419896
length = 取字节集长度 (data)
packet_data = 到字节集 (magic) + 到字节集 (length) + data
append (packet_data)
.子程序 getData, 字节集, 公开
返回 (m_Data)
.子程序 getLength, 整数型, 公开
返回 (m_DataLen)