2009-06-25 34 views
-1

我有一个IP地址数组,其中包含一组IP地址,它将从服务器传送。示例:有5个客户端。 4的IP地址不在此5中将存储在IP地址数组中。剩余的一个将在从服务器发送消息时被阻止。它将如何完成。我的发送消息代码如下所示。发送邮件到选定的IP

private void buttonSendMsg_Click(object sender, EventArgs e) 
    { 

     try 
     { 

       Object objData = richTextBoxSendMsg.Text; 
       byData = System.Text.ASCIIEncoding.ASCII.GetBytes(objData.ToString()); 
       for (int i = 0; i < m_clientCount; i++) 
       { 
        if (m_workerSocket[i] != null) 
        { 
         if (m_workerSocket[i].Connected) 
         { 

          m_workerSocket[i].Send(byData); 

         } 
        } 
       } 
      } 


     catch (SocketException se) 
     { 
      MessageBox.Show(se.Message); 
     } 
    } 
+0

你能详细谈谈你想要做什么或者重新解释一下这个问题吗? – 2009-06-25 05:19:59

回答

0

尝试实施一个n + 1大小的数组,其中n是客户端IP地址的数目。保持数组中的位置为“被阻止”的客户端(最好是第一个或最后一个索引)。所以,你的代码最终会是这样的:

if (m_workerSocket[i].Connected) 
{ 
    clientIp[0] = m_workerSocket[i]; //index 0 is the blocked client 
    clientIp[indexOf(m_workerSocket[i])] = null; 
    m_workerSocket[i].Send(byData); 

} 

在此之后,恢复你的clientIp排列的状态,设置mWorkerSocket[i]的价值在它的位置0你需要一个方法是将原来的位置和null不断检查这个数组,以便在发送数据的同时阻止索引为0的客户端。