套接字 多线程

huns2049 2007-03-09 10:30:43
//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错误。。。
...全文
125 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧