当前位置: 代码迷 >> VC >> 关于CSocket解决办法
  详细解决方案

关于CSocket解决办法

热度:3691   发布时间:2013-02-25 00:00:00.0
关于CSocket
各位:

我想利用CSocket完成client和service的通信,但在client端用connect()连接服务器时出现“套接字操作尝试一个无法连接的主机”错误,我刚刚接触MFC,不知道如何解决这个问题,请各位高手给点建议,非常感谢。

client端部分代码:

CMutex gMutex(FALSE, NULL);
UINT ConnectProc (LPVOID param)
{
gMutex.Lock();
//char *ip1 = static_cast<char* >param;
param = "101.101.1.1";
int iport=1010;
char *ip1 = (char*)param;
CString ip2 (ip1);
CSocket * sock = new CSocket();
if (!sock->Create()) {
int errNo;
LPTSTR lpBuffer; 
errNo = GetLastError();
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
FORMAT_MESSAGE_IGNORE_INSERTS | 
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
errNo, // 此乃错误代码,通常在程序中可由 GetLastError()得之
LANG_NEUTRAL,
(LPTSTR) &lpBuffer,
0 ,
NULL );

CString strErr = lpBuffer ? CString(lpBuffer) : _T("cannot get error info");

MessageBox(NULL, strErr, _T("Create connect error"), MB_OK);
gMutex.Unlock();
return 1;
}

if (!sock->Connect((LPCTSTR)ip2, iport)) {
int errNo;
LPTSTR lpBuffer; 
errNo = GetLastError();
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
FORMAT_MESSAGE_IGNORE_INSERTS | 
FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
errNo, // 此乃错误代码,通常在程序中可由 GetLastError()得之
LANG_NEUTRAL,
(LPTSTR) & lpBuffer,
0 ,
NULL );

CString strErr = lpBuffer ? CString(lpBuffer) : _T("cannot get error info");
MessageBox(NULL, strErr, _T("Connect Service Error"), MB_OK);
gMutex.Unlock();
return 1;
}
else {
/*if (pstrMsg != NULL) {
char msg[1024];
for (int i = 0; i< pstrMsg->GetLength(); i++){
msg[i] = (*pstrMsg)[i];
}
sock->Send(msg, pstrMsg->GetLength());
pstrMsg->ReleaseBuffer();
}*/

}
gMutex.Unlock();
return 0;
}

------解决方案--------------------------------------------------------
那就给分吧
------解决方案--------------------------------------------------------
问题解决了啊。。。那接分咯。。。
------解决方案--------------------------------------------------------
这里是.net。。。。板块。。
------解决方案--------------------------------------------------------
晕,咋解决的呀
------解决方案--------------------------------------------------------
端口号要大于1023吧?
  相关解决方案