int _tmain(int argc, _TCHAR* argv[])
{
SMSStartup(_T("chassis_topo.txt"));
Communication *pCommunication = new Communication();
pCommunication->initializeUDP();
while(1)
{
string recebuf;
string rec_funtype;
while(!pCommunication->ReceFrom(recebuf));
if(FunHandle(recebuf))
pCommunication->SendTo(sendbuf.str());
else
continue;
}
delete pCommunication;
SMSClosedown();
cout<<"dddddddddddddd"<<endl;
sleep(5000);
return false;
}
这个进程执行了一会,控制台的窗口就消息了,而且dddddddd没有打印,说明不是正常跳出while退出的,但是我所调用的这些函数,里面都没有终止当前进程的函数,比如exit啥的都没有调用,但是就是退出了,莫名其妙的没了。
后来发现一个问题:刚调了调,有个线程读数据,select后刚要revcfrom,但是被别的线程读走了,没有互斥,但是这个可能造成程序终止吗?
{
SMSStartup(_T("chassis_topo.txt"));
Communication *pCommunication = new Communication();
pCommunication->initializeUDP();
while(1)
{
string recebuf;
string rec_funtype;
while(!pCommunication->ReceFrom(recebuf));
if(FunHandle(recebuf))
pCommunication->SendTo(sendbuf.str());
else
continue;
}
delete pCommunication;
SMSClosedown();
cout<<"dddddddddddddd"<<endl;
sleep(5000);
return false;
}
这个进程执行了一会,控制台的窗口就消息了,而且dddddddd没有打印,说明不是正常跳出while退出的,但是我所调用的这些函数,里面都没有终止当前进程的函数,比如exit啥的都没有调用,但是就是退出了,莫名其妙的没了。
后来发现一个问题:刚调了调,有个线程读数据,select后刚要revcfrom,但是被别的线程读走了,没有互斥,但是这个可能造成程序终止吗?
解决方案 »
- GetDC返回的CDC*能保存嗎?
- 如何调用xtreme toolkit 接口
- MFC静态规则dll中创建用户界面线程的问题
- 请问一个MFC多线程之间传递MFC对象指针的问题
- 请问:ISAPI怎么用ADO操作数据库,且只连接数据库一次,关闭数据库连接应该放在什么地方?
- 重分求助:udp和tcp/ip通信怎样获取对方的ip和端口号(贡献突出者再加)
- 急问:有谁知道.pdg文件用什么来读
- 有個線程執行的問題!!很難讓人理解!!!
- 如何注册串口控件mscomm32?
- MSDN上socket的chatter示例程序在哪里啊?希望高手能给个链接,多谢!
- 求教关于网页游戏多开的原理
- OpenGL如何画三维物体(如立方体),并添加鼠标、键盘操作功能
string rec_funtype;
写出循环体吧,看着不舒服
互斥这块只能是一般导致这个函数就死了,但是也不至于出现一个错误对话框,太难找了
while(!pCommunication->ReceFrom(recebuf));
recebuf是引用。if(FunHandle(recebuf))
是直接的string
像程序异常一般不会出现的