麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

javaserversocket參數(shù)詳解

2019-11-14 15:29:05
字體:
供稿:網(wǎng)友

ServerSocket有以下3個選項。

SO_TIMEOUT:表示等待客戶連接的超時時間。
SO_REUSEADDR:表示是否允許重用服務(wù)器所綁定的地址。
SO_RCVBUF:表示接收數(shù)據(jù)的緩沖區(qū)的大小。

 

SO_TIMEOUT :  表示接收數(shù)據(jù)時的等待超時時間 。 單位為毫秒,默認值為0 , 表示永遠等待。

設(shè)置該選項:public void setSoTimeOut(int timeout) throws SocketException
讀取該選項:public int getSoTimeOut() throws IOException;

 

SO_TIMEOUT表示ServerSocket的accept()方法等待客戶連接的超時時間,以毫秒為單位。如果SO_TIMEOUT的值為0,表示永遠不會超時,這是SO_TIMEOUT的默認值。

當服務(wù)器執(zhí)行ServerSocket的accept()方法時,如果連接請求隊列為空,服務(wù)器就會一直等待,直到接收到了客戶連接才從accept()方法返回。如果設(shè)定了超時時間,那么當服務(wù)器等待的時間超過了超時時間,就會拋出SocketTimeoutException,它是InterruptedException的子類。

當?shù)讓拥腟ocket實現(xiàn)不支持SO_TIMEOUT選項時,這兩個方法將拋出SocketException例外。不能將timeout設(shè)為負數(shù),否則setSoTimeout方法將拋出IllegalArgumentException例外。

實例參見:http://blog.csdn.net/woshisap/article/details/6597413

 

SO_RESUSEADDR:  表示是否允許重用socket所綁定的本地地址

設(shè)置該選項:public void setReuseAddress(boolean on) throws SocketException
讀取該選項:public boolean getReuseAddress() throws SocketException

 

該選項用來決定如果網(wǎng)絡(luò)上仍然有數(shù)據(jù)向舊的ServerSocket傳輸數(shù)據(jù),是否允許新的ServerSocket綁定到與舊的ServerSocket同樣的端口上,該選項的默認值與操作系統(tǒng)有關(guān),在某些操作系統(tǒng)中,允許重用端口,而在某些系統(tǒng)中不允許重用端口。

   當ServerSocket關(guān)閉時,如果網(wǎng)絡(luò)上還有發(fā)送到這個serversocket上的數(shù)據(jù),這個ServerSocket不會立即釋放本地端口,而是等待一段時間,確保接收到了網(wǎng)絡(luò)上發(fā)送過來的延遲數(shù)據(jù),然后再釋放端口。

     值得注意的是,public void setReuseAddress(boolean on) throws SocketException必須在ServerSocket還沒有綁定到一個本地端口之前使用,否則執(zhí)行該方法無效。此外,兩個公用同一個端口的進程必須都調(diào)用serverSocket.setReuseAddress(true)方法,才能使得一個進程關(guān)閉ServerSocket之后,另一個進程的ServerSocket還能夠立刻重用相同的端口。

 

SO_RCVBUF:  接收數(shù)據(jù)的緩沖區(qū)大小

設(shè)置該選項: public void setReceiveBufferSize(int size) throws SocketException 
讀取該選項: public int getReceiveBufferSize() throws SocketException

SO_RCVBUF 表示 Socket 的用于輸入數(shù)據(jù)的緩沖區(qū)的大小. 一般說來, 傳輸大的連續(xù)的數(shù)據(jù)塊(基于HTTP 或 FTP 協(xié)議的通信) 可以使用較大的緩沖區(qū), 這可以減少傳輸數(shù)據(jù)的次數(shù), 提高傳輸數(shù)據(jù)的效率. 而對于交互頻繁且單次傳送數(shù)據(jù)量比較小的通信方式(Telnet 和 網(wǎng)絡(luò)游戲), 則應(yīng)該采用小的緩沖區(qū), 確保小批量的數(shù)據(jù)能及時發(fā)送給對方. 這種設(shè)定緩沖區(qū)大小的原則也同樣適用于 Socket 的 SO_SNDBUF 選項.

      如果底層 Socket 不支持 SO_RCVBUF 選項, 那么 setReceiveBufferSize() 方法會拋出 SocketException.

 

backlog : 輸入連接指示(對連接的請求)的最大隊列長度被設(shè)置為 backlog 參數(shù)。如果隊列滿時收到連接指示,則拒絕該連接。

 

1. backlog參數(shù)必須是大于 0 的正值。如果傳遞的值等于或小于 0,則假定為默認值。  
2. 經(jīng)過測試這個隊列是按照FIFO(先進先出)的原則。 
3. 如果將accept這個函數(shù)放在一個循環(huán)體中時,backlog參數(shù)也不會有什么作用。或者簡單的講運行ServerSocket的這個線程會阻塞時,無論是在accept,還是在read處阻塞,這個backlog參數(shù)才生效。

實例參考:http://blog.csdn.net/huang_xw/article/details/7338487

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 精选久久 | 国产人成精品综合欧美成人 | 2021国产精品视频 | 亚洲欧美成aⅴ人在线观看 免费看欧美黑人毛片 | 黑人一级片视频 | 午夜天堂在线 | 欧美xxxx精品另类 | 特级毛片a级毛片100免费 | 一区二区三区日韩精品 | 国产精品久久久久久久久久东京 | 日韩.www| 欧美一级黄色片免费观看 | 91 视频网站| 国产一区二区不卡视频 | 91香蕉国产亚洲一区二区三区 | 黄色毛片a级| 中文字幕在线免费观看电影 | 99热高清 | 99在线在线视频免费视频观看 | 综合97| 欧美成人午夜影院 | 一级啪啪片 | 看免费一级毛片 | 干色视频 | 成人18免费观看 | 国产欧美亚洲精品 | 亚洲操比视频 | 国产女同疯狂激烈互摸 | 日韩黄色免费在线观看 | 黄色va视频 | 天天鲁在线视频免费观看 | 看个毛片 | 最新一级毛片 | www国产免费 | 一级性生活视频 | 污片视频网站 | 成人午夜免费福利 | 久久人人爽人人爽人人片av高清 | 天天干天天碰 | 成年免费视频黄网站在线观看 | 香蕉国产精品 |