網路:網際網路/區域網
通訊:資料傳輸
協議:規則規範
tcp協議:傳輸控制協議(transmission control protocol)
ip協議:網際網路協議(internet protocol)
tcp協議:傳輸控制協議,特點是:面向有連線,資料傳輸之前必須先建立連線,底層是」三次握手「;
優點是:保證資料是完整的。缺點:效能較低。
udp協議:使用者資料報協議,特點是:面向無連線,傳輸資料時,不需要建立連線,直接將資料傳送。
優點是:效能較高。缺點:不能保證資料的完整性和安全性。
ipv4:由32位二進位制組成。
ipv6:由128位二進位制組成
客戶端:個人裝置(手機、電腦等)
伺服器端:**、京東等
構造方法: public socket(string ip,int port);//伺服器的ip位址,伺服器的埠號
此構造方法會根據我們傳入的引數,自動去連線伺服器。如果成功,物件正常建立;如果連線失敗,直接丟擲異常。
常用方法:
public outputstream getoutputstream ();//獲取連線中的輸出流
public inputstream getinputstream ();//獲取連線中的輸入流
public void shutdownoutput();//關閉連線中的輸出流
public void shutdowninput();//關閉連線中的輸入流
public void close();//關閉客戶端
構造方法: public serversocket(int port);//指定伺服器的埠號
常用方法:
public socket accept();//接受連線到伺服器的socket物件,如果沒有客戶端,會阻塞。
public void close();//關閉伺服器物件
注意:伺服器獲取到客戶端物件後,也可以獲取連線中的兩個流,但是是相對於伺服器而言的。
public
class
socketdemo
}
public
class
serversocketdemo
}
客戶端給伺服器發資訊,伺服器給客戶端回資訊。
客戶端:
public
class
socketdemo1
}
伺服器端:
public
class
serversocketdemo1
}
需求:
使用tcp協議實現客戶端和服務端互相傳送訊息。
客戶端傳送一條訊息,伺服器讀取之後,返回一條訊息給客戶端,客戶端讀取伺服器返回的訊息之後,又傳送一條訊息…迴圈執行,直到輸入exit。
要求:1. 訊息內容通過鍵盤輸入
2. 要求伺服器端和客戶端都使用字元流的方式傳送和接收資料。
使用bufffferedreader方法readline()讀取一行資料。
使用bufffferedwriter方法write(「字串的資料」)傳送資料。
客戶端:
public
class
demo01
bufferedwriter.
write
(s);
//換行
bufferedwriter.
newline()
;//重新整理
bufferedwriter.
flush()
;//讀取伺服器返回的訊息
system.out.
println
("伺服器端說:"
+ bufferedreader.
readline()
);}//釋放資源
bufferedreader.
close()
; bufferedwriter.
close()
; socket.
close()
;}}
伺服器端:
public
class
demo02
//寫出資料
bufferedwriter.
write
(line)
;//換行
bufferedwriter.
newline()
; bufferedwriter.
flush()
;}}}
【重點掌握】
在使用位元組輸入流時,需要建立位元組陣列來實現讀取資料。
在使用位元組輸出流時,需要呼叫getbytes()方法寫出資料。
看看這個StringBuffer的問題
提供乙個方法 public static void getbuffer stringbuffer x,stringbuffer y public static void main string args stringbuffer x new stringbuffer x stringbuffer y...
vscode 終端無法輸入問題 看這個就行了
前幾天遇到了終端無法輸入問題,問度娘很多都是告訴你 管理員執行什麼的,博主試過好像沒啥用,自己研究了一番,終於折騰半天終於是折騰好了,在這裡給大家提供幾種靠譜的解決方案 主要是更改shell 配置 方法1 使用場景是 開啟終端後 命令列列印了一些配置資訊 凡是游標不自動顯示 隨便輸入一行 回車 後 ...
大家幫忙看看這個多執行緒有問題沒
整個流程是這樣的,迴圈從乙個檔案中讀取資料,每讀6萬條後就要暫停,啟動三個執行緒 每次僅允許三個執行緒同時處理 來處理這6萬條資料,處理結束後,再繼續讀。迴圈這樣直到檔案中資料全部處理完。大家幫忙看看,有什麼問題沒,例如處理流程 併發。等方面,多謝!public class copyoftest c...