【问题标题】:Sending Messages to Selected Ips向选定的 Ips 发送消息
【发布时间】:2009-06-25 05:00:23
【问题描述】:

我有一个 IP 地址数组,其中包含一组 IP 地址,这些 IP 地址将与服务器通信。示例:有 5 个客户。这 5 个中的 4 个 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);
        }
    }

【问题讨论】:

  • 您能否详细说明您正在尝试做什么或重新表述一下这个问题?

标签: c# ip-address


【解决方案1】:

尝试实现一个 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] 的值设置为原始位置,将 null 设置为位置 0。您需要一种方法来不断检查此数组以阻止索引为 0 的客户端正在以某种方式发送数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    相关资源
    最近更新 更多