Java 網路程式設計 學習筆記二 Socket 用法

2021-05-24 12:00:28 字數 3021 閱讀 4668

一、構造

socket

socket()---

構造socket

物件,但不建立連線,需要用

bind(socketaddress)

繫結到本地位址,再呼叫

connect

(socketaddress

)與遠端主機建立連線。

以下構造方法均建立與遠端主機的連線

socket(inetaddress address,int port) throws unknownhostexception,ioexception

socket(inetaddress address,int port,inetaddress localaddr,int localport) throws ioexception

socket(string host,string port) throws unknownhostexception,ioexception

socket(string host,string port,inetaddress localaddr,int loaclport) throws ioexception

二、獲取

socket

的資訊 1

、getinetaddress()

獲得遠端伺服器的

ip位址 2

、getport()

獲得遠端服務其的埠 3

、getlocaladdress

()獲得客戶本地的

ip位址 4

、getlocalport

()獲得客戶本地的埠 5

、getinputstream():

獲得輸入流,若

socket

沒有連線、已經關閉、呼叫

shutdowninput

(),則丟擲

ioexception 6

、getoutputstream()

獲得輸出流,若

socket

沒有連線、已經關閉、呼叫

shutdownoutput

(),則丟擲

ioexception

三、關閉

socket

1、socket.close(); 2

、socket

狀態測試方法

isclosed():

若socket

已經建立連線,並且還沒有關閉,

return  true

否則return false

isconnected():

若socket

曾經連線

到遠端主機,則返回

true

,否則返回

false

isbound():

若socket

已經與乙個本地埠繫結,則返回

true

,否則返回

false

四、判斷乙個

socket

物件是否處於連線狀態

boolean isconnected =socket.isconnected()&&!socket.isclosed();

五、半關閉

socket

程序a告訴程序

b所有資料已經輸出完畢的方法

1、當程序a與

b交換的是字元流,並且一行一行的讀寫時,可以事先約定乙個特殊的標誌作為結束標誌

2、程序

a先傳送乙個訊息,告訴程序

b所傳送的正文的長度,然後再傳送正文。程序

b先獲取程序

a將傳送的正文的長度,接下來只要讀取完該長度的位元組或字元就停止

3、程序

a發完所有資料後,關閉

socket

。當程序

b讀取完所有的資料後,再呼叫

read

(返回-1

)獲取readline(

返回null)

則已到達輸入流的末尾

4、可採用半關閉方法:關閉輸入流

---shutdowninput

,關閉輸出流

---shutdownoutput

isinputshutdown

()輸入流是否關閉

isoutputshutdown()

輸出流是否關閉

六、設定

socket

的選項 1

、tcp_nodelay:

表示立即傳送資料。布林型別 2

、so_reuseraddr:

表示是否允許重用

socket

所繫結的本地位址。布林型別 3

、so_timeout

:表示接收資料的等待超時時間。整形 4

、so_linger

:表示當執行

socket

的close

方法時,是否立即關閉底層的

socket 5

、so_snfbuf

:表示傳送資料的緩衝區大小 6

、so_rcvbuf

:表示接收資料的緩衝大小 7

、so_keepalive

:表示對於長時間處於空閒狀態的

socket

,是否要自動將其關閉 8

、oobinline:

表示是否支援傳送乙個位元組的

tcp緊急資料

七、服務型別選項 ip

規定了4

中服務型別,用來定性描述服務的質量 1

、低成本 2

、高可靠性 3

、最高吞吐量 4

、最小延遲

socket類用4

個整數表示服務型別 1

、低成本:

0x02 2

、高可靠性:

0x04 3

、最高吞吐量:

0x08 4

、最小延遲:

0x10

設定服務型別:

settrafficclass

讀取服務型別:

gettrafficclass

Java網路程式設計筆記

模式 含義file 本地磁碟檔案 ftpftp伺服器 使用超文字傳輸協議的全球資訊網伺服器 urn統一資源名 url uniform resource name 同一資源定位符,他用與指定訪問伺服器的協議 ftp http 指定伺服器的名和檔案在伺服器上的位址 列如http localhoast 8...

Java網路程式設計 二 http

http狀態返回 1xx 臨時響應 表示臨時響應並需要請求者繼續執行操作的狀態 http狀態返回 說明 100 繼續 請求者應當繼續提出請求。伺服器返回此 表示已收到請求的第一部分,正在等待其餘部分。101 切換協議 請求者已要求伺服器切換協議,伺服器已確認並準備切換。http狀態返回 2xx 成功...

《ASP網路程式設計》學習筆記之二

1 使用response物件在網頁上輸出內容 if hour now 0 then response.write 現在是午夜。end if if hour now 12 then response.write 現在是中午。end if if hour now 1 and hour now 11 th...