CSocket.accept
场景:CSocket.accept后面紧跟着使用messagebox出现的有关问题
CSocket.accept后面紧跟着使用messagebox出现的问题
一个SOCK_STREAM类型的socket写的程序
我用CSocket写了一个基于对话框的客户端,OnDialogInit中调用顺序为CSocket.Create() CSocket.Connect();
又用CSocket写了一个基于对话框的服务器端,OnDialogInit调用顺序为create,bind,listen,accept,close.
启动客户及服务器之后,通信正常,只不过服务器端启动之后,要等运行了客户端才会显示出来,这应该是因为accept等待的问题. 为了验证,我在accept后加了个MessageBox(), 就出问题了.
故障现象: 启动服务器端之后不显示,对话框不弹出,在启动客户端,这时客户端好像也吊死在哪了,用鼠标移动它也不响应. 这是启动第二个服务器程序,第二个服务器程序可以启动并显示出来,但是双方没有通讯,在任务管理器里面看到有两个服务器程序,一个客户程序.
只要去掉MessageBox,就没问题, 哪位高手指导下. 实在是弄不明白了.
------解决方案--------------------
初学者还是不要追究这么深了,慢慢学点看的懂的吧。如果你熟悉了调试的一些技巧,慢慢试着跟进去看看都调用了写什么,觉得VC的bug还是有的。
CSocket.accept后面紧跟着使用messagebox出现的问题
一个SOCK_STREAM类型的socket写的程序
我用CSocket写了一个基于对话框的客户端,OnDialogInit中调用顺序为CSocket.Create() CSocket.Connect();
又用CSocket写了一个基于对话框的服务器端,OnDialogInit调用顺序为create,bind,listen,accept,close.
启动客户及服务器之后,通信正常,只不过服务器端启动之后,要等运行了客户端才会显示出来,这应该是因为accept等待的问题. 为了验证,我在accept后加了个MessageBox(), 就出问题了.
故障现象: 启动服务器端之后不显示,对话框不弹出,在启动客户端,这时客户端好像也吊死在哪了,用鼠标移动它也不响应. 这是启动第二个服务器程序,第二个服务器程序可以启动并显示出来,但是双方没有通讯,在任务管理器里面看到有两个服务器程序,一个客户程序.
只要去掉MessageBox,就没问题, 哪位高手指导下. 实在是弄不明白了.
------解决方案--------------------
初学者还是不要追究这么深了,慢慢学点看的懂的吧。如果你熟悉了调试的一些技巧,慢慢试着跟进去看看都调用了写什么,觉得VC的bug还是有的。