UDPP可靠UDP传输,非常适合编写P2P应用
udpp0.13与接口例程.zip
(73.97 KB, 下载次数: 72)
BUG反馈、对UDP可靠传输算法、P2P通信感兴趣的朋友可以一起探讨,
窗口.标题 = 窗口.标题 + “ - SDK: ” + UGetVersion () 集_ipv4套接字 = UCreate ( #AF_INET, “0.0.0.0”, 8815 ) USetCallback (到整数 (&回调子程序 )) |
回调子程序 | 整数型 | | |
参_事件类型 | 整数型 | | | | 参_套接字 | 整数型 | | | | 参_连接序号 | 整数型 | | | | 参_数据指针 | 整数型 | | | | 参_数据长度 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_addr | 文本型 | | | 局_port | 整数型 | | | 局_接收数据指针 | 整数型 | | | 判断 (参_事件类型 = #回调事件_建立连接 ) 集_连接句柄 = 参_连接序号  局_addr = UGetConnectINFO (参_套接字, 参_连接序号, 参_事件类型, 局_port ) 调试输出 (“新连接建立”, 参_套接字, 参_连接序号, 局_addr, 局_port ) 如果真 (参_数据长度 > 0 )  局_接收数据指针 = 申请内存 (参_数据长度, 假) UGetDATA (局_接收数据指针, 参_数据指针, 参_数据长度, 1 )  欲发送数据. 加入文本 (“连接携带数据:” + 到文本 (_读字节集 (局_接收数据指针, 参_数据长度 )) + #换行符 ) 释放内存 (局_接收数据指针 ) 返回 (0) 判断 (参_事件类型 = #回调事件_连接断开 ) 局_addr = UGetConnectINFO (参_套接字, 参_连接序号, 参_事件类型, 局_port ) 调试输出 (“有连接断开”, 参_套接字, 参_连接序号, 局_addr, 局_port ) 返回 (0 ) 判断 (参_事件类型 = #回调事件_连接失败 ) 局_addr = UGetConnectINFO (参_套接字, 参_连接序号, 参_事件类型, 局_port ) 调试输出 (“连接失败”, 参_套接字, 参_连接序号, 局_addr, 局_port ) 返回 (0 ) 判断 (参_事件类型 = #回调事件_数据到达 ) 局_接收数据指针 = 申请内存 (参_数据长度, 假) UGetDATA (局_接收数据指针, 参_数据指针, 参_数据长度, 0 ) 调试输出 (到文本 (_读字节集 (局_接收数据指针, 参_数据长度 )) ) 欲发送数据. 加入文本 (“DATA到达回调长度:” + 到文本 (参_数据长度 ) + #换行符 ) 释放内存 (局_接收数据指针 ) 返回 (0 ) 判断 (参_事件类型 = #回调事件_发送成功 ) 释放内存 (参_数据指针 ) 调试输出 (参_套接字, 参_连接序号, 参_数据指针, “发送成功”) 返回 (0 ) 判断 (参_事件类型 = #回调事件_发送失败 ) 释放内存 (参_数据指针 ) 调试输出 (参_套接字, 参_连接序号, 参_数据指针, “发送失败”) 返回 (0 ) 返回 (0)变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_携带数据 | 文本型 | | | 局_数据指针 | 整数型 | | | 携带数据 | 文本型 | | |
局_携带数据 = 连接携带内容.内容 集_连接句柄 = UConnect (集_ipv4套接字, 连接IP.内容, 到整数 (连接端口.内容 ), 0, 0, _取文本变量地址 (局_携带数据 ), 取文本长度 (局_携带数据 ), 1 )连接句柄.内容 = 到文本 (集_连接句柄 )返回 () 局_携带数据 = 连接携带内容.内容 局_数据指针 = 申请内存 (取文本长度 (局_携带数据 ), 假)Memcpy (局_数据指针, 指针_取文本变量地址 (携带数据 ), 取文本长度 (携带数据 )) UConnect (集_ipv4套接字, 连接IP.内容, 到整数 (连接端口.内容 ), 0, 0, 局_数据指针, 取文本长度 (局_携带数据 ), 0 )释放内存 (局_数据指针 ) UDisconnect (集_ipv4套接字, 集_连接句柄 )变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_数据 | 文本型 | | | 局_反馈 | 逻辑型 | | | 局_数据指针 | 整数型 | | |
局_数据 = 取重复文本 (50, “1234567890qwertyuiop”)局_数据指针 = 申请内存 (取文本长度 (局_数据 ), 真)Memcpy (局_数据指针, 指针_取文本变量地址 (局_数据 ), 取文本长度 (局_数据 )) USend (集_ipv4套接字, 集_连接句柄, 局_数据指针, 取文本长度 (局_数据 ), 0, 0 )返回 () USend (集_ipv4套接字, 集_连接句柄, 局_数据指针, 取文本长度 (局_数据 ), 0, 1 )释放内存 (局_数据指针 )返回 ()UDestory (集_ipv4套接字 )
|