關於位元組流的總結

2021-09-02 03:33:33 字數 1274 閱讀 8364

在以前的乙個專案中用到過 流 的操作,今天大致總結一下。

與客戶方的資料傳輸其實可以分成幾個步驟:

1.封裝報文

2.準備鏈結(包括換取ip,埠,協議,timeout) http和https還需要請求的url 以及httphead

3.傳送報文(判斷是否要對所做的操作校驗)

4.解析返回的報文資訊,根據資訊修改本次執行的狀態

其中簡單的4個步驟中,在第二步和第三步中在可以抽象出乙個公用的方法,在專案中經過分析發現,http流,https流以及tcp流之間有很大的共通性:

private void prepareconnection() throws exception {

// 建立連線工廠

connectionfactory factory = getconnectionfactory();

// 設定連線屬性

setconnectionproperty(factory);

// 構造連線

conn = getconnection(factory);

// 開啟連線

openconnection(conn);

// 獲取輸出流

os = getoutputstream(conn);

在建立連線工廠中,可以根據具體的渠道把請求機器的ip、超時設定初始化返回factory物件,這一步http,https,tcp都是通用的;

在設定連線設定中,若有渠道對連線有特殊的操作,比如需要渠道自己校驗的key值等;

在構造連線中,根據http,https,tcp建立對應的connection.(後面在詳細介紹);

在獲取輸出流中,直接返回

outputstream 的

輸出流。

在接下來就是進行互動了:

// 傳送報文

send(os, requeststr);

// 關閉輸出流

closeoutputstreamquietly(os);

// 獲取輸入流

inputstream is = getinputstream(conn);

// 接收報文

string responsestr = recv(is);

// 關閉輸入流

closeinputstreamquietly(is);

//返回報文

return responsestr;

後面基本上一目了然了,對返回的報文進行解析,根據解析的結果修改本次操作的狀態。

後續有空會繼續補充!盡量編寫細緻。

網路位元組流和主機位元組流

位元組流分為兩類 little edition le big edition be 0x123456 在兩種位元組流中的儲存方式 位址 le be 0x0000 56 12 0x0001 34 34 0x0002 12 56 主機位元組流根據cpu型別而定 網路位元組流採用be格式 為了進行轉換 b...

day3 25總結 位元組流

返回讀到位元組,假如是 1表示已經讀到檔案尾 將位元組讀到buf陣列,一次最多讀buf.length個位元組,返回值為讀到的位元組數 a write bytedata 一次只能寫乙個位元組 b write bytebuf 一次最多寫buf.length個位元組 c write byte,intoff...

關於TCP的位元組流轉字元流

tcp客服端的接收中 1 public static void main string args throws ioexception 11inputstream.close 12accept.close 13ss.close 1415 16 中文亂碼 如果客服端是英文的話 1 public sta...