OSI模型
主機A
1應用層2表示層3會話層4傳輸層5網(wǎng)絡層6數(shù)據(jù)鏈路層7物理層
應用層1-3粹懒,傳輸層4,網(wǎng)絡互聯(lián)層5,網(wǎng)絡接口層6-7,
端口
telnet協(xié)議 tel 23端口? ? |? 簡單郵件傳輸協(xié)議 smtp 25 | 文件傳輸協(xié)議 21 | 超文本傳輸協(xié)議 80
IntAddress類
getLocalHost() 獲取本機InetAddress對象
getHostAddress() 獲取IP地址對象
getLocalName 獲取本地域名對象
TCP編程對象??
需要向系統(tǒng)注冊服務 , 監(jiān)聽鏈接 ,獲取輸入輸出流 跪者, 處理數(shù)據(jù), 關閉資源
代碼:
//需要向操作系統(tǒng)注冊熄求,服務=>指定端口
ss = new ServerSocket(port);
//監(jiān)聽客戶端的連接渣玲,阻塞直到有客戶端連接
accept = ss.accept();
//獲取客戶端的信息
InetAddress inetAddress = accept.getInetAddress();
String clientAddress = inetAdress.getHostAdress;
//通過輸入流來進行服務器和客戶端的交互 || InputStream inputStream? = accept.getInputStream();
//輸入流
dataInputStream = new DateInputStream(accept.getInputStream);
dataOutputStream = new DateInputStream(accept.getOutputStream);
//先返回服務端的歡迎信息
String welcome? = scanner.nextLint();
dataOutputStream.writeUTF(welcome);
//處理處理
客戶端
創(chuàng)建socket套接字,獲取輸入流和輸出流弟晚,處理數(shù)據(jù) 忘衍, 關閉資源
Socket socket = null;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
Scanner scanner = new Scanner(System.in);
try{
//創(chuàng)建socket對象
socket = new Socket(ipAddress , port);
//獲取輸出流,獲取輸入流
dataOutputStream = new DataOutputStream(socket.getOutputStream);
dataInputStream = new DataInputStream(socket.getinputStream);
//先收取服務器的輸入信息
System.out.println("服務器端"+dataInputStream.readUTF());
//輸出數(shù)據(jù)
String content = scanner.nextLine();
dataOutputStream.writeUTF(content);
System.out.println("服務器端"+dataInputStream.readUTF());
}catch{
? ? e.printStrackTrace();
}finally{
}
}
UDP: 不安全 不可靠 單向 廣播式
URL:
統(tǒng)一資源定位符卿城,包含協(xié)議枚钓,主機名字,端口瑟押,文件路徑
https://list.jd.com/list.html?cat=9987,653,655
URL這個類主要用于獲取 對應 資源定位指定符
openStream(): 得到對應內容的字節(jié)輸入流
//創(chuàng)建一個URL對象
URL url = new URL("http://www.gxadu.com");
//獲取對應網(wǎng)址的內容字節(jié)流
InputStream inputStream = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
String read= null;
String myContent="";
while((read = br.readLine()) ! = null){
myContent + = read;
}
System.out.println(myContent);
//如何用正則去匹配圖片
//如何得到正則表達式對象
Pattern compile = Pattern.compile("<img.*?(>|/>)");
//得到匹配對象
Matcher matcher = compile.matcher(myContent)
while(matcher.find()){
? ? String group = matcher.group();
? ?System.out.println(group);
}