2009-06-25 11 views
-1

私は、サーバから通信されるIPアドレスのセットを含むIPアドレスの配列を持っています。例:5つのクライアントがあります。 4のIPアドレスはこの5からIPアドレス配列に格納されます。残りの1つは、サーバーからのメッセージ送信時にブロックされます。どのようにそれが行われる。私の送信メッセージコードは以下の通りです。選択したIpsにメッセージを送信

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

あなたは何をしようとしているのか少し詳しく説明できますか、少し質問を言い換えるとできますか? –

+0

これはかなり無意味です。 – Chris

答えて

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); 

} 

を、それはあなたがする方法が必要になります0の位置に元の位置とnullだでmWorkerSocket[i]の値を設定し、あなたのclientIp配列状態を元に戻します何らかの形でデータを送信している間、インデックス0のクライアントをブロックするためにこの配列を常にチェックしてください。

関連する問題