|
|
导航: |
论坛 -> 网络通讯
斑竹:liumazi,sephil |
|
作者: |
|
2020/11/17 14:59:51 |
标题: |
控件TIdIcmpClient的IPv6的10014错误 |
浏览:1568 |
|
加入我的收藏 |
楼主: |
花了小半天,修复了Indy的一个小BUG(没做过稳定性测试)
源代码:
with IdIcmpClient1 do begin IPVersion := Id_IPv6; Host := 'speed.neu6.edu.cn'; Ping; end;
原错误提示:
Socket Error # 10014
Buffer fault.
缓冲错误
直接改底层Indy源代码
将IdStackWindows.pas和IdCompilerDefines.inc复制到工程目录下
改IdStackWindows.pas的TIdStackWindows.ReceiveMsg
LMsgBuf.buf := PIdAnsiChar(Pointer(VBuffer)); //原代码
LMsgBuf.buf := @VBuffer[0];//修改后的代码
以后IPv6的天下了,提前记录一下
期望Indy再次大版本升级,BUG太多了,也不太稳定
缝缝补补又是一年
----------------------------------------------
- |
作者: |
|
2020/11/17 19:20:08 |
2楼: |
在Debug时,解决了
更改为Release,又出问题了(汇编状态找毛病比较麻烦,以后加强学习)
然后翻资料,TIdStackWindows是Win32-only,改成Win64,Release也没毛病了
纯粹记录,谢谢楼上的指路
----------------------------------------------
-
|
|