这里,错误码0x1001,网络读失败,就是指的4097错误。因为1001是16进制,转换成10进制就是1*16*16*16+1=4097.
那么为什么网络读失败呢?
按经验来讲,有两种情况,
1、服务器不稳定,连接不上,这时候的4097错误是等待重试的,不用着急,等一会儿一分钟左右就能连接上了,不会多次重复提示“登陆成功,然后又disconnnect 4097错误”,
2、API版本不对,在找到的网上的一些Demo创建时间都比较早,使用的API版本服务器不接收了,而目前CTP要求API版本和后台版本一致才能有正确的onfrontconnected回调。版本不对会不停地回调OnFrontDisconnected,所以就现实不断重复的4097错误。
一、先讲一下怎么查看API版本
使用GetApiVersion()函数,刚开始我查到的案例是这样写的
但是我发现这个我用不了啊,因为我现在API版本不对,根本运行不到下边取版本那一句。查找GetApiVersion()函数定义
所以把pTDUserApi->GetApiVersion() 写成CThostFtdcTraderApi::GetApiVersion()大概也是可以的,这样就可以吧获取版本语句放到最前边
这样不管能不能连到服务器,都能知道现在程序用的API版本。
至于如果发现确实API版本和服务器不匹配了,需要更换API接口文件,这个操作下一篇讲。
【云量网__智能金融实验室 QQ:531226209,欢迎交流,辅助编程,视频课程免费赠送】