以前是用VB控件的 winsock.ocx 建立一个数组控件 一个控件接受一个连接 可以动态建立65535个控件
意味着6万多个用户可以与我进行连接
在MFC下 如何做到N多个用户进行连接呢
现在我做成了 只可以进行一个用户连接 必须要用到多线程之类的 什么线程池吗?
不用多线程技术可以做到吗?
if (listen(m_Listen, 5) == 0) // 监听连接
{
SetDlgItemText(IDC_Run,L"监听连接成功.");
GetDlgItem(IDC_Run)->EnableWindow(false); // 禁用
}
switch (lParam)
{
case FD_ACCEPT: // 接受连接
closesocket(m_Accept);
m_Accept = accept(m_Listen, NULL, NULL);
if (m_Accept != INVALID_SOCKET)
{
m_Msg.ReplaceSel(L"接受连接成功。\n");
}
else
{
m_Msg.ReplaceSel(L"接受连接失败。\n");
}
break;
if (listen(m_Listen, 5) == 0) // 监听连接
{
SetDlgItemText(IDC_Run,L"监听连接成功.");
GetDlgItem(IDC_Run)->EnableWindow(false); // 禁用
}
使用while(true)一直监听啊,这样可以接受到多个客户端的连接、
向你介绍一下mfc中的多线程
MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息
队列和消息循环。
工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独
立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。 在MFC中,一般用全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用户界面线程。
个人认为网络编程使用多线程技术利是大于弊的,啊D注入工具就是利用多线程技术写的。
多线程,动态创建线程。在MFC中有事件驱动的方式,可以不使用多线程,CAsynsock 重载事件函数