采用非阻塞单线程,接收到数据后解密,然后查询数据库,最后把结果返回给客户端,我为了测试性能,写了一个测试程序,给他不停的发包,我发现,在数据不是特别多的时候,比如100毫秒一个数据包,程序很稳定,但是,当我调整到50ms一个数据包的时候,就出错了,是内存访问错误,继续跟踪,是接收数据包解密的时候出的错,我发现接收的包是错误的,不是我想要的包,所以解密就出现了错误。那么,请问该怎么解决这样的问题呢?是清除缓存?还是什么杨?tcp不是可靠链接吗?应该不会出现错误啊?代码无法贴出,是用c++builder写的
我的系统是3层结构
很多客户-》通讯程序-》服务程序出错是在服务程序中,我通过调试,发现通讯服务器发送的时候,有时候会sendbuf函数会返回-1,就是发送错误,然后服务程序就会出现错误,是不是这里的原因呢?
通讯服务器发生错误的原因可能是服务程序的接受缓冲满了
异常处理也要做。返回-1,查看wsagetlasterror
是可以继续下去的。为什么会出现来不及处理缓冲区数据就被覆盖了~~ 这样的情况呢? 能给个代码吗?