if (m_socketRmoteRegSend.m_hSocket != INVALID_SOCKET)
{
m_socketRmoteRegSend.Close();
m_socketRmoteRegSend.m_hSocket = INVALID_SOCKET; }
括号里面的条件是什么意思呢? 程序运行到Close以后就不往下面走了。
把它们屏蔽掉后运行int iTempPort = 36210;
m_socketRmoteRegSend.Connect(gszSelectedIP,36210);
程序每次运行到这个Connect的时候就会报错,错误信息是
DvoRemoteSet.exe 中的 0x7c204a3f (mfc71.dll) 处未处理的异常: 0xC0000005: 读取位置 0x0000003c 时发生访问冲突 。
这个是什么意思呢?
{
m_socketRmoteRegSend.Close();
m_socketRmoteRegSend.m_hSocket = INVALID_SOCKET; }
括号里面的条件是什么意思呢? 程序运行到Close以后就不往下面走了。
把它们屏蔽掉后运行int iTempPort = 36210;
m_socketRmoteRegSend.Connect(gszSelectedIP,36210);
程序每次运行到这个Connect的时候就会报错,错误信息是
DvoRemoteSet.exe 中的 0x7c204a3f (mfc71.dll) 处未处理的异常: 0xC0000005: 读取位置 0x0000003c 时发生访问冲突 。
这个是什么意思呢?
gszSelectedIP这个你是怎么定义的,把相关代码贴完整些吧.
有效吗?
if (m_socketRmoteRegSend.m_hSocket != INVALID_SOCKET)//如果socket可用
{
m_socketRmoteRegSend.Close();//关闭
m_socketRmoteRegSend.m_hSocket = INVALID_SOCKET;//设置不可用 }
我不怎么会用
是添加了一个基于CAsyncSocket的类CSocketRmoteRegSend
CSocketRmoteRegSend m_socketRmoteRegSend;
在这个类里面有OnReceive和OnSend函数
在发送连接里面第一次用到这个套接字
if (m_socketRmoteRegSend.m_hSocket != INVALID_SOCKET)
{
m_socketRmoteRegSend.Close();
m_socketRmoteRegSend.m_hSocket = INVALID_SOCKET; }
if (m_socketRmoteRegSend.m_hSocket == INVALID_SOCKET)
{ /*
BOOL bFlag = m_socketRmoteRegSend.Create(0,SOCK_STREAM, FD_CONNECT);
if (!bFlag)
{
AfxMessageBox("net bak fail");
m_socketRmoteRegSend.Close();
}
AfxMessageBox("创建套接字成功!"); int iTempPort = 36210; int nErr = m_socketRmoteRegSend.Connect(gszSelectedIP,iTempPort);
if(nErr == 0)
{
if(m_socketRmoteRegSend.GetLastError() != WSAEWOULDBLOCK)
{
AfxMessageBox("net 60000 connect Error");
m_socketRmoteRegSend.Close();
return;
}
}
}
刚才又看了下CAsyncSocket. 然后直接用Create。
BOOL bFlag = m_socketRmoteRegSend.Create(36210,SOCK_STREAM,FD_CONNECT,gszSelectedIP);
if (!bFlag)
{
AfxMessageBox("net bak fail");
m_socketRmoteRegSend.Close();
}
但是还是错误。
AfxSocketInit()
Call this function in your CWinApp::InitInstance override to initialize Windows Sockets.
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
不懂 呵呵, 那个if语句里面第一次出现这个socket句柄 应该是无效才对 但是它有效的。 然后close让他无效,但是close以后却不继续往前面走了。。我跟过去以后, 那个iTempPort没有值 还是不知道怎么解决