java Socket的怪異之處

2021-08-30 05:43:04 字數 660 閱讀 7794

怪異之一:

connect(socketaddress endpoint):這個方法,嘗試連線server端,如果連線不上,就丟擲ioexception異常。如果連線成功了,就繼續執行下一步的**。

怪異之二:

boolean isconnected() :這個方法的結果僅僅代表這個socket曾經成功連線到了server,但並不表示現在這個時刻它和server仍保持連線狀態。

有心的人會發現,即使你已經切斷了server和socket之間的連線(比如server down掉了或網路中斷了),但是這個函式執行的結果仍舊是true。所以,我認為這個方法並不像我們想象中的那麼「管用」。

怪異之三:

考慮這樣一種情況:

1.socket和server socket已經建立了連線

2.但是由於網路原因,這個時候連線中斷了。大多數系統都會有乙個斷線重連的功能。

但是當你除錯時,你可能會發現:網路恢復正常後,用這個socket重新連線serversocket,卻怎麼也連不上。

在這裡我的做法是:

socket=null;

//然後新建socket,而不是用原來的那個socket

socket = new socket();

//接下來,用這個socket再去連線serversocket,就可以成功連上了。

怪異的排列

description 將輸入的n個整數,按照這些數的逆序數從小到大排序輸出。數字的逆序 例如數字是123,則逆序數為321 例如輸入的資料為 122,432,321 則輸出 321 122 432 注意 輸出還是那些數,只是排序依據是其逆序數。input 第一行為n n 100 其後的n行,每行乙...

怪異的洗牌

題目描述 對於一副撲克牌,我們有多種不同的洗牌方式。一種方法是從中間某個位置分成兩半,然後相交換,我們稱之為移位 shift 比如原來的次序是123456,從第4個位置交換,結果就是561234。這個方式其實就是陣列的迴圈移位,為了多次進行這個操作,必須使用一種盡可能快的方法來程式設計實現。在本題目...

JAVA SOCKET與TUXEDO通訊的問題

現在我這邊的socket作為tuxedo傳送報文的接收服務端,在返回資料給tuxedo的時候,現在遇到乙個問題,就是同乙個socket連線不能夠將訊息分批返回給tuxedo,因為tuxedo要求第乙個報文為8位的後續報文長度,然後再傳送後續報文,必須分開發,否則不能夠正常接收。我記得在jdk1.4的...