如何将其他正在进行的streamreader线程置于保持状态

时间:2012-11-27 20:27:18

标签: java swing network-programming thread-safety swingworker

例如,如果我尝试在服务器程序上构建一个文件传输机制,通过利用他们自己现有的连接套接字从发送者A到用户B敲打一个文件字节,那么如何避免它与所有正在进行的聊天交错流进来,即保持清除等待并通知这两个线程除了在服务器端创建额外的serversocket ...

非常感谢 千电子伏

1 个答案:

答案 0 :(得分:3)

为您的应用创建一个消息协议,区分各种消息类型。然后创建一个“文件块”消息和一个“聊天”消息以及您需要的任何其他消息。

伪代码:

// sending method
public synchronized void send(Message msg) {
  // write message to socket ...
}

// receiving method
while(true) {
  Message msg = readMessage(); // read message from socket
  handleMessage(msg); // may want to push this work to another thread
}