不久前,我在这里发布了一篇关于mfc socket中的CSocket在超线程cpu编程时出现问题的帖子本人一直被此问题所困扰,经过多方测试研究,现在得出几点测试结果,希望大家一起探讨。首先,超线程cpu是一种很好的cpu,并没有影响到mfc socket的工作,那么我所说的超线程编程的问题完全是由于vs.net 2003而引起的!!后来我在vs6下重新编译了我的程序,发现根本没有问题,我想这是vs.net 2003的bug。但是,我没有在网上看到相关的报道。看来vs6还是很经典的版本啊!其次,vs.net2003下表现的问题在某些cpu下(例如p42.4非超线程和p42.8超线程)显得比较严重,不知道这是什么样的问题,但有时候在某些cpu下,程序显得极其正常。我曾在雷鸟1g的机器上测试过,很正常。再次,我还是描述一下我程序的错误情况,就是socket连接完全正常,发送数据在刚开始的时候也完全正常,但是当发送了n(n是不确定的数)个包之后,数据包就再也接受不到了,socket处于完全没有响应的状态。另外,为了全面测试,我将网络通讯程序重写,用win api的非阻塞模式(WSAAsyncSelect)来实现,不管是在vs.net2003还是在vs6下,都非常正常,由此确定,vs核心的socket实现还是没有问题的,问题就出在了mfc CSocket的封装上。但是我不知道问题到底出在哪,我的编程模型是采用CSocket CArchive CSocketFile来实现数据串行化的。如果哪位高人曾经解决过这个问题欢迎探讨!最后,我的编程有一段时间的经验了,但是可以说还是新手,以上问题纯粹是本人自己研究,可能有很多说的不对的地方,希望高手们能不吝赐教,指出我的问题所在,在此十分感谢!