套接字 多线程
//in dxcDlg.cpp
void CdxcDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
// start listen...
Pr *ptr = new Pr;
BOOL flag;
m_pLisSocket = new CServerSocket(this);
flag = m_pLisSocket->Create(6789,SOCK_STREAM);
flag = m_pLisSocket->Listen();
}
UINT CdxcDlg::fff(LPVOID lpParameter)
{
BOOL flag;
Pr *p = (Pr*)lpParameter;
int rlen;
//char *str = p->s;
CClientSocket *cltSock= p->cltSock;
char *fhead = new char[40];
rlen = cltSock->Receive(fhead,40);
p->s = fhead;
cltSock->Send("zzzz",sizeof("zzzz"));
//cltSock->Close();
//delete cltSock;
return 0;
}
void CdxcDlg::OnAccept()
{
Pr *ptr = new Pr;
CClientSocket *m_pCltSocket;
m_pCltSocket = new CClientSocket;
BOOL flag = m_pLisSocket->Accept(*m_pCltSocket);
ptr->cltSock = m_pCltSocket;
//ptr->pDlg = this;
//ptr->s = "";
number = number+1;
UpdateData(FALSE);
//HANDLE hwnd = CreateThread(NULL,0,fff,(LPVOID)ptr,0,NULL);
CWinThread *thrd;
thrd = AfxBeginThread(fff,(LPVOID)ptr);
Sleep(1);
//CloseHandle(hwnd);
}
//in dxc.h
struct Pr
{
char *s;
CClientSocket *cltSock;
//CdxcDlg *pDlg;
};
void CServerSocket::OnAccept(int nErrorCode)
{
m_pDlg->OnAccept();
}
各位大侠看看有没有问题。。。
有时候对 有时候不对 出错的时候显示在 SOCKCORE.CPP的一个ASSERT错误。。。