CSocket一Accpet就报错,该怎么处理
CSocket一Accpet就报错
void CWSocketServerDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CSocket* serversocket=new CSocket();
if(!(serversocket-> Create(6000)))
{
MessageBox( "端口创建失败 ");
}
if(serversocket-> Listen())
{
AfxBeginThread(BeginReceive,(LPVOID)serversocket);
}
}
UINT CWSocketServerDlg::BeginReceive(LPVOID pParam)
{
CSocket* serversocket=(CSocket *)pParam;
CSocket* acceptsocket=new CSocket();
CString str1;
char buf[20];
serversocket-> Accept(*acceptsocket);
while(1) //持续性线程函数里总会看到
{
acceptsocket-> Receive(buf,20,0);
str1=buf;
........
}
return 0;
}
问题1.是执行到serversocket-> Accept(*acceptsocket);就非法操作退出
2.new 完是不是一定要delete
------解决方案--------------------
serversocket-> Listen(1)
new了一定要delete
void CWSocketServerDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CSocket* serversocket=new CSocket();
if(!(serversocket-> Create(6000)))
{
MessageBox( "端口创建失败 ");
}
if(serversocket-> Listen())
{
AfxBeginThread(BeginReceive,(LPVOID)serversocket);
}
}
UINT CWSocketServerDlg::BeginReceive(LPVOID pParam)
{
CSocket* serversocket=(CSocket *)pParam;
CSocket* acceptsocket=new CSocket();
CString str1;
char buf[20];
serversocket-> Accept(*acceptsocket);
while(1) //持续性线程函数里总会看到
{
acceptsocket-> Receive(buf,20,0);
str1=buf;
........
}
return 0;
}
问题1.是执行到serversocket-> Accept(*acceptsocket);就非法操作退出
2.new 完是不是一定要delete
------解决方案--------------------
serversocket-> Listen(1)
new了一定要delete