2012-11-27 23 views
0

例如,如果我嘗試在服務器程序上構建文件傳輸機制,以便通過利用其自己現有的連接套接字來將發件人A的一個文件字節從用戶B中刪除,能避免它與所有正在進行的聊天流進來的,即保持清醒的等待和除了建立在服務器端額外的ServerSocket這兩個線程之間通知交織......如何將其他進行中的流式處理器線程擱置

非常感謝 千電子伏

+0

連接。 –

回答

3

創建一個消息協議爲您的應用程序區分各種消息類型。然後創建一個「文件塊」消息和一個「聊天」消息以及您需要的任何其他消息。

僞代碼:

經由多個`Socket`s
// 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 
} 
+0

如果是這樣的話,表明每個客戶端的一個套接字就足夠了,如果是這樣的話,那麼你的回答並沒有削減我對交織傳入流的併發問題的問題。 – Saint

+0

@Saint - 是的,我假設一個套接字連接。通過實現消息傳遞協議,您可以在同一個套接字連接上多重傳輸各種類型的通信。 – jtahlborn

+0

一個套接字只能生成一個輸入流,爲它們的類型處理不同的msg將不會篩選 – Saint

相關問題