0

我有一个多线程应用程序,其中不同的组件(在不同的线程中运行)需要发送 UDP 消息。现在它们都共享同一个 Socket 实例。

套接字创建为线程Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)socket.Send(byte[] message)从线程中调用。Socket.Send 是唯一被调用的方法。

这是一个不好的方法吗?我还没有看到任何问题,但我担心这不是套接字的使用方式。

4

1 回答 1

3

最“正确”的解决方案是创建一个调用 socket.send 方法的方法,并通过使用锁或互斥锁来保护该调用。这样,wikl 保证套接字对象在给定时间用于一次线程。您也可以使用队列来归档它。

于 2013-01-27T11:11:45.920 回答