2009-06-25 3 views
-1

서버로부터 통신 할 일련의 IP 주소를 포함하는 IP 주소 배열을 가지고 있습니다. 예 : 5 개의 클라이언트가 있습니다. 이 5 중 4의 IP 주소는 IP 주소 배열에 저장됩니다. 나머지 하나는 서버에서 메시지를 보낼 때 차단됩니다. 어떻게 될지. 내 보내는 메시지 코드는 아래와 같습니다.선택된 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에서 차단하려면이 배열을 지속적으로 검사해야합니다.