謝謝!
寫行很亂,是我自己的分析的時候,想到什么就寫下來了,如果您不怕麻煩,就看下去吧我原來的方案: 客房端運行一個服務SOCKET,就是ServerSocket,時刻度監聽是否有用戶給我們傳送文件,如果有就用一個線程去接收,有多少個都沒有關系,只要有足夠的系統的資源就行。如果有人要給我們傳送文件,肯定有一個提醒呀,比如彈出一個對話框之類,可是在線程中,沒有繼承JFrame,是彈不出來對話框,如果用了JFrame又構不成線程了,這是一個問題。還有就是我下面要談到的傳送文件與傳送消息之間的矛盾,因為我通過服務間中轉,那么接收文件時候如果對方給我發送消息,那接收的文件就肯定會發生錯誤。客戶端不采用接收線程。
當客戶以發送一個事先約定好的、表示要傳送文件的信號,當客戶端接收到這樣的信號的時候,那在客戶端怎么辦呢?NEW一個對話框,這樣用于接收線程,在這樣對話框同意后采用線程
這樣就不會在接收文件的時候的不能夠發送消息了所有的消息都必須服務接端傳送但是這里有一個問題,就是用戶和用戶之間能夠直接建立連接嗎?
如果不能夠直接建立連接,那么用戶只有一個發送消息的SOCKET,在傳文件的時候又怎么能夠發送消息呢?如果是再建立一個SOCKET,傳文件用一個SOCKET,那么用戶怎么確定我們呢? 還有就是,如果我們在傳文件的時候別的用也在給我們傳文件,也可能是很多人在給我們傳,那我們不是要建立很多個SOCKET嗎,這里還不說多建SOCKET在一個用戶那邊的可行性,就是這個數量就夠讓人吃驚了。如果每個用戶都能夠有IP就好了,但是現在很多的用戶都是IP自動獲得的,用可能很多用戶從公網這個角度上去看,都是一個IP,只不過他們在內部進行了分離,我怎么去確定呢?矛盾,矛盾,都是矛盾! 可以給個建意嗎?

解决方案 »

  1.   

    1。可是在線程中,沒有繼承JFrame,是彈不出來對話框,如果用了JFrame又構不成線程了
    ---把线程类独立出来,继承JDialog就行了。2。因為我通過服務間中轉,那么接收文件時候如果對方給我發送消息,那接收的文件就肯定會發生錯誤。
    ---把接受消息和接受文件的两个Socket使用不同的端口试下,这样应该可以。