一个SOCK_STREAM类型的socket写的程序我用CSocket写了一个基于对话框的客户端,OnDialogInit中调用顺序为CSocket.Create() CSocket.Connect();又用CSocket写了一个基于对话框的服务器端,OnDialogInit调用顺序为create,bind,listen,accept,close.启动客户及服务器之后,通信正常,只不过服务器端启动之后,要等运行了客户端才会显示出来,这应该是因为accept等待的问题. 为了验证,我在accept后加了个MessageBox(), 就出问题了.故障现象: 启动服务器端之后不显示,对话框不弹出,在启动客户端,这时客户端好像也吊死在哪了,用鼠标移动它也不响应. 这是启动第二个服务器程序,第二个服务器程序可以启动并显示出来,但是双方没有通讯,在任务管理器里面看到有两个服务器程序,一个客户程序. 只要去掉MessageBox,就没问题, 哪位高手指导下. 实在是弄不明白了.
解决方案 »
- 二维快速付立叶变换及反变换
- 求进程间通信-共享内存的例子
- 使用CreateFile 打开USB映射出来的COM口, 程序阻塞, 而且进程无法杀死!
- 有游戏开发经验的高手请进,关于棋牌类游戏的算法问题!
- 要做一个邮件监控系统,迷茫中!
- 对你来说可能是简单问题,但是我却不知道该怎么解决,在线等待,谢谢谢谢谢谢
- 各位新情况注意了@@#!!
- 请问各位大哥大姐,有谁比较熟悉用VC和OPENGL处理模型简化的问题
- 出现'COleControlLock'问题
- TrackPopupMenuEx 怎么在窗口以外的位置,弹出一个菜单呀?(急寻)(100)
- CSocket.accept后面紧跟着使用messagebox出现的问题
- 在VC中,用findwindow获得指向指定应用程序窗口的指针后,如何获得其客户区的图像?
{
.............
CSocket tempSocket;
tempSocket.Create(7000, SOCK_STREAM, "127.0.0.1");
tempSocket.Bind(7000, "127.0.0.1");
tempSocket.Listen(5);
tempSocket.Accept(mySocket);
//AfxMessageBox("aa");
tempSocket.Close();
SetTimer(1, 1000, NULL);
return TRUE; // return TRUE unless you set the focus to a control
}
另一端的代码如下:
BOOL CTcpServerDlg::OnInitDialog()
{
...........
tempSocket.Create(0,SOCK_STREAM, "127.0.0.1");
tempSocket.Connect("127.0.0.1", 7000);
SetTimer(1,1000,NULL);
return TRUE; // return TRUE unless you set the focus to a control
}