我继承了一个类
class CStationSocket : public CAsyncSocket首先Creat();
int rc=0;
再rc=Connect("127.0.0.1",5477);在5477这个端口有服务器侦听和没有侦听时,Connect返回值都为0?为什么呢,我要如何判断一个Socket成功与服务器建立了连接呢?
class CStationSocket : public CAsyncSocket首先Creat();
int rc=0;
再rc=Connect("127.0.0.1",5477);在5477这个端口有服务器侦听和没有侦听时,Connect返回值都为0?为什么呢,我要如何判断一个Socket成功与服务器建立了连接呢?
if(ret == SOCKET_ERROR)
print("Connect Error with Error Code %d\n", WSAGetLastError);
else printf("Connect Successed!"); 用“Error Lookup"查错误代码。
想要验证可以发数据过去,对方收到与否则可证明连接是否真的成功。想要得到错误信息可以这样:
if (nRet == SOCKET_ERROR)
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
WSAGetLastError(),
0, // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
); MessageBox((LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
LocalFree( lpMsgBuf );
return 0 ;
}
返回0表示失败。
取得失败信息用WSAGetLastError()。
switch(dwResult)
{
case WSAETIMEDOUT:
strcpy(szError,"连接超时!");
case WSAECONNREFUSED:
strcpy(szError,"连接被拒绝!");
case WSAEHOSTUNREACH:
strcpy(szError,"主机无法到达!");
case WSAEISCONN:
strcpy(szError,"已经和主机建立了连接!");
default:
strcpy(szError,"连接时发生其它错误!");
}
If no error occurs, connect returns zero. Otherwise, it returns SOCKET_ERROR, and a specific error code can be retrieved by calling WSAGetLastError.如果没有错误发生,connect返回0.否则返回SOCKET_ERROR.
http://expert.csdn.net/Expert/topic/1131/1131123.xml?temp=.6317255
没有绑定固定Port,Create();
CAsyncSocket是异步通讯的,当你发出连接请求,连接成功的话,就会产生FD_Connect消息,添加消息处理函数OnConnect()就可以了.