基于TCP,一个客户端往100个服务器发送同一个文件。
采用多线程的方法去实现。
但有个疑问,之前对于这个问题问过坛子上的朋友们。
就是多线程的实现:轮流时间片一会儿发给这线程个,一会儿发给另一个线程。
那这样会不会造成全局变量的混乱啊!
我的意思是:
如果我定义了一个全局变量int n,在线程中使用。
当n为10的时候,是在线程1中使用的。
那按照那个朋友的说法,如果突然变成了线程2,那我这个n是不是从初始化开始,还是继续从10开始呢?
下面我自己写的多线程可以保证每个线程都是独立的互相不干涉的呢?
谁先谁后无所谓,关键是会不会互相影响?
如果会,有什么办法解决他呢?对于多线程是第一次使用,请朋友帮我一下,谢谢。
void CClientDlg::OnBnClickedBcStart()
{
    UpdateData();    //启动线程
    for (int i = 0; i < m_iServerIndex; i++) //m_iServerIndex = 100
    {
        HANDLE Client_Thread = NULL;
        unsigned Client_ThreadID = 0;
        Client_Thread = (HANDLE)_beginthreadex(NULL, 0, ClientThread, this, 0, &Client_ThreadID);
        if ( NULL == Client_Thread )
            return;
    }
}unsigned __stdcall CClientDlg::ClientThread( void * obj )
{
    CClientDlg * pDlg = (CClientDlg*)obj;
    if ( NULL == pDlg )
        return -1;    pDlg->LinkSend();//这里就负责创建每个socket,连接服务器,发送文件等    return 0;
}