在C#中广播到多个IP地址

时间:2012-02-04 04:22:12

标签: c# sockets tcpclient

我希望向C#中的子网上的所有IP发送短消息。我正在使用TCPClient,问题是如果没有使用该IP,TCPClient.Connect()函数需要20秒才能抛出它的异常。如果可能的话,我希望能在几毫秒的时间内完成任务。

我真正想做的就是向每个地址发送几个字节并从某些地址接收ACK。如果有一种方法可以在没有明确使用Connect(),TCPClient或甚至只是设置我不知道的连接超时的情况下执行此操作,我可以轻松切换到它。

我希望在多台计算机上运行此程序,并且将使用此广播,以便每个实例都知道其他实例的IP。所以我真正需要的是发送几个字节进行识别。

2 个答案:

答案 0 :(得分:4)

为什么不通过UDP地址进行广播。如果客户端正在监听该地址,他们将收到消息(尽管不能像TCP那样保证),如果他们不在那里,广播公司并不关心。这听起来像你需要的是UDP,它更像是对任何人的监听场景的广播。

答案 1 :(得分:1)

根据您是否确实需要快速返回响应,或者您是否只需要控制权来返回程序,您可以异步执行此操作。