?? day15.txt
字號(hào):
網(wǎng)絡(luò)編程:
多線程+網(wǎng)絡(luò):
1、服務(wù)器端的等待客戶連接代碼( while(true) ),服務(wù)器端與單個(gè)客戶端交互的代碼放入線程體( run )
2、客戶端如有其他要求,與服務(wù)器交互的代碼也要放入線程體
3、ServerSocket和Socket編碼基于TCP/IP協(xié)議,重發(fā)一切錯(cuò)誤數(shù)據(jù),當(dāng)網(wǎng)絡(luò)不好時(shí)會(huì)使性能很差
4、Server端
new ServerSocket啟動(dòng)等待連接線程
在accept后啟動(dòng)交互線程
注意:交互時(shí)注意對(duì)應(yīng)產(chǎn)生,讀寫流對(duì)應(yīng)和次數(shù)對(duì)應(yīng)
URL:網(wǎng)址,統(tǒng)一資源定位器
常用的構(gòu)造器:
URL(String spec)
spec 一個(gè)完整的網(wǎng)址(協(xié)議+網(wǎng)址)
根據(jù) String 表示形式創(chuàng)建 URL 對(duì)象。
URLConnection:與網(wǎng)址進(jìn)行連接
通過(guò)URL的openConnection()方法生成一個(gè)URLConnection實(shí)例,通過(guò)下面兩個(gè)方法,進(jìn)行流的操作
getInputStream()
返回從此打開的連接讀取的輸入流
getOutputStream()
返回寫入到此連接的輸出流。
UDP編程:這種信息傳輸方式相當(dāng)于傳真,信息打包,在接收端準(zhǔn)備紙
特點(diǎn):
1、一種無(wú)連接協(xié)議,速度快
2、不保證數(shù)據(jù)的完整,不會(huì)進(jìn)行重發(fā)
DatagramSocket和DatagramPacket類:
DatagramSocket:此類表示用來(lái)發(fā)送和接收數(shù)據(jù)報(bào)包的套接字。
DatagramPacket:數(shù)據(jù)報(bào)包,是UDP下進(jìn)行傳輸數(shù)據(jù)的單位,數(shù)據(jù)存放在字節(jié)數(shù)組中,其中包括了目標(biāo)地址和端口以及傳送的信息。
用于接收:
DatagramPacket(byte[] buf , int length)
用于發(fā)送:
DatagramPacket(byte[] buf , int length , InetAddress address , int port )
UDP發(fā)送端:
1、創(chuàng)建一個(gè)DatagramSocket,不需要參數(shù)
2、創(chuàng)建一個(gè)DatagramPacket,指明接收方的IP地址和端口號(hào)
3、發(fā)送數(shù)據(jù)send(DatagramPacket p)
4、關(guān)閉DatagramSocket
UDP接收端:
1、創(chuàng)建一個(gè)DatagramSocket,指定接收方的IP地址和端口號(hào)
2、創(chuàng)建一個(gè)DatagramPacket,不需要IP地址和端口號(hào)
3、接收數(shù)據(jù)receive(DatagramPacket p)
4、關(guān)閉DatagramSocket
常用類庫(kù):
java.lang.*:
System 系統(tǒng)
Object 對(duì)象
clone()
equals()
hashCode()
toString()
Class 類
String/StringBuffer/StringBuilder 與字符串相關(guān)的
Thread 線程
所有的封裝類
java.util.*:
Set--->HashSet,TreeSet
List--->ArrayList
Map--->HashMap(線程安全,不支持空),HashTable(線程不安全,支持空)
Collections--->外同步
Properties
Date
觀察者-->Observable,接口Observer
數(shù)據(jù)結(jié)構(gòu)+工具類
java.sql.*: 后面馬上會(huì)講到,JDBC
java.awt/swing.*:沒什么機(jī)會(huì)用到
java.io.*: 流相當(dāng)?shù)亩? File/FilenameFilter
Serializable 對(duì)象序列化接口
注意:寫一個(gè)類要考慮的事情:1、無(wú)參構(gòu)造器,2、實(shí)現(xiàn)序列化接口,3、重寫equals,hashCode
FileInputStream
FileOutputStream
InputStreamReader
PrintStream
BufferedReader
nio包
java.net.*: 以后JSP,Servlet用的時(shí)候這個(gè)包都已經(jīng)寫好了
InetAddress--->IP地址
URL----------->網(wǎng)址
URLConnection---->連接
ServerSocket,Socket----TCP/IP
DatagramSocket,DatagramPacket----UDP
一些零散的類:
Comparable(可比較的),Comparator(比較器)
java.math.*;數(shù)字在商業(yè)軟件中應(yīng)用時(shí)找這個(gè)包
BigDecimal
與反射相關(guān)的:java.lang.reflect: 用的機(jī)會(huì)比較少
Runtime(運(yùn)行環(huán)境),Process(進(jìn)程) ,這兩個(gè)在java.lang包里,用了這些就不能跨平臺(tái)了,而且效率低
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -