拍卖服务器接受客户端并为每个套接字连接创建一个新线程来服务客户端。每个线程都有它的协议。服务器只有一个拍卖对象实例。Auction
object 保存对象列表Lot
。Auction
对象作为参数传递给客户端线程。Protocol
必须有办法出价并以某种方式通知所有客户端线程。该makeBid
方法存在于Lot
并将投标放入投标列表中。下一步是通知所有客户端线程表单makeBid
方法。这样做的最佳做法是什么?
我尝试在 Thread 中使用字段 (MSG) 来保存消息。线程检查是否!MSG.isEmpty()
在run()
. 如果!MSG.isEmpty()
然后ClientThread
打印到套接字 this MSG
。我认为有更好的解决方案。
public class ClientServiceThread extends Thread {
public String PRINT_NEW_MSG = "";
while (m_bRunThread) {
if(!PRINT_NEW_MSG.isEmpty()){
out.println("PRINT_NEW_MSG: "+PRINT_NEW_MSG);
PRINT_NEW_MSG = "";
String clientCommand = in.readLine();
...
}
}