描述:
问题在http://community.csdn.net/Expert/topic/3680/3680099.xml?temp=.7293512中提过了。
这两天我都在调试这个程序。我试着以VC为容器去解决,但是无论是用什么样的方法,都是只能显示一个画面。我多次跟踪相关的变量,发现在控件中的一个连接参数(是一个句柄,用来连接服务器)只能使用一次,哪怕是控件的不同对象。当第一个对象显示画面时,它的连接句柄为非零值,再连接第二个控件对象时,这句柄值便是零了。我本以为是全局变量的原因,然而我使用局部变量时,结果还是一样的,请问各位兄弟姐妹,有谁碰到过类似的问题,帮忙解决一下,感激不尽!!
解决方案1:
多线程的吧?
每个socket客户端连接都有独立的处理线程,我认为这个跟变量的定义是没有关系的吧,关键是这些变量的同步问题:有第二个连接进来时,是否会去修改这个变量?
可能是你的服务器没有连接客户机,应该是这样的。对于服务器处理多套接字的问题,建议使用原始套接字,MFC处理这个问题我觉得还是有限的。
参考书目:windows网络编程《清华大学出版社》
我的QQ:29967208,希望能互相交流。
“发现在控件中的一个连接参数(是一个句柄,用来连接服务器)只能使用一次”
你没有把问题描述清楚。一个连接参数出了问题,那么它是什么样的一个句柄呢?如果是SOCKET句柄,两个控件用同一个SOCKET句柄去连接,可能就会出现你所描述的问题。那么你有多少个对象,就应该新建多少个SOCKET连接,而不应该共享一个SOCKET。