用MFC编写TCP通讯有关问题

用MFC编写TCP通讯问题?
本帖最后由 VisualEleven 于 2014-08-12 11:46:35 编辑
想用MFC做客户端的TCP通讯(工业上的,与PLC通讯),因为是初学者,所以希望大家多多指教!

void CPLCconnectDlg::OnBnClickedConnect()
{
CString strIP(L"192.168.2.15");
if(!PLC_1.Create())
{
AfxMessageBox(L"创建失败!");
return;
}
if(PLC_1.Connect(strIP, 1234))
{
AfxMessageBox(L"连接成功!");
pTread = AfxBeginThread(ThreadFunc, &Info);
}
}

问题:
1.如果服务器没有启动,点了按钮后会出现死机状况,我知道问题出在Connect()这个函数上,但是不知道怎么解决,麻烦各位详细解释下。 
2.Create()创建后,如果再点按钮,会弹出错误来,怎么加个条件(判断创建后就不创建了)?
3.CSocket里面有没有函数可以判断是否连接上? MSDN里面没有查到

谢谢啦!


------解决方案--------------------
检测服务器与客户机之间的连接问题,你如果是长连接的话,应该有心跳包机制的,关于心跳包机制,你可以百度一下,这样就能实时检测到服务器与客户机之间的连接情况