網路程式設計: socket程式設計
網路程式設計的三個要素:
有32位或者128位表示, 常用的ip位址是32位 也就是ipv4, 128位代表ipv6
a: 1.0.0.1 -- 127.255.255.25410.x.x.x 是私有位址
b類128.0.0.1---191.255.255.254172.16.0.0--
-172.31.255.255是私有位址。169.254.x.x是保留位址。
c類192.0.0.1---223.255.255.254192.168.x.x是私有位址
d類224.0.0.1---239.255.255.254
e類240.0.0.1---247.255.255.254
端
口號:
0-65535 其中0-1024為系統保留埠
傳輸協議:
udp協議:
面向無連線的協議,速度快,不安全
tcp協議:
面向有連線的協議,速度稍慢,安全,會進行三次握手操作
資料的傳輸
使用udp進行資料的傳輸:
傳送端:
1: 建立udp協議的傳送端datagramsocket物件
2: 把要傳送的資料 ,封裝成 資料報包 使用datagrampacket物件完成
3: 傳送資料報包, send(dp)方法
4: 關閉socket流, 使用close()方法
public static void main(string args) catch (socketexception e) catch (unknownhostexception e) catch (ioexception e) finally
}
接收端:
1: 建立udp協議的接收端datagramsocket物件
2; 建立空的資料報包, 用來儲存接收到的資料
3: 接收資料,把資料儲存到空的資料報包中
4: 解析資料報包中的資料
獲取ip位址 getaddress();
獲取資料: getdata();
獲取資料的長度: getlength();
5: 關閉socket流,使用close()方法
public static void main(string args) catch (exception e) finally
}
使用tcp進行資料的傳輸:
客戶端;
1: 建立客戶端的socket物件
2: 準備要傳送的資料
3: 通過socket物件中的輸出流,完成資料的傳送
4: 告知伺服器 ,資料已傳送完畢, shutdownoutput()
5: 獲取伺服器的反饋資訊
6; 關閉socket流
public static void main(string args) catch (exception e) finally catch (ioexception e)
}} }
伺服器端:
1: 建立伺服器端serversocket物件
2: 等待客戶端的連線
3: 建立執行緒物件,並啟動,通過每個執行緒物件,來完成與客戶端socket物件
的資料傳輸
public static void main(string args) throws ioexception
}
a: 獲取ip位址
string ip = s.getinetaddress().gethostaddress();
b: 獲取資料
1): 獲取客戶端的輸入流物件
2): 通過輸入流物件, 讀取流中的資料
3): 把資料進行處理(列印,儲存到檔案中)
c: 編寫客戶端反饋資訊
1): 獲取客戶端的輸出流物件
2): 寫 給客戶端的反饋資訊
d: 關閉客戶端socket流
public class tcpserver extends thread
@override
public void run()
// 獲取客戶端的輸出流物件
outputstream os = s.getoutputstream();
// 寫 給客戶端的反饋資訊
os.write("收到".getbytes());
} catch (ioexception e) finally catch (ioexception e)
}} }
}
java網路程式設計基礎
一.埠 如果把ip比作一間房子那麼埠就是這間房子的們 1.一台計算機有65535個埠,其中0為保留埠,1 1024為固定埠,1025 65535為動態埠 程式設計師可以試用的埠 2.在計算機 尤其是伺服器 上盡可能的少開端口 3.乙個埠只能被乙個程式監聽 4.可以使用netstat an命令檢視本機...
JAVA基礎 網路程式設計
協議 udp 面向無連線,不安全,速度快 tcp 面向連線,安全,三次握手 一 使用udp實現資料的傳送 1.建立socket端點 2.明確要傳送的資料 3.使用socket的傳送功能傳送資料 datagramsocket socket new datagramsocket 建立socket物件 s...
JAVA 基礎 網路程式設計
尚矽谷課程 inetadress類的建立和使用 inetaddress inet inetaddress.getbyname www.badu.com inet inetaddress.getbyname xx.x system.out.println inet 控制台輸出的格式為 www.badu...