女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > > 充電吧
[導讀]============================ 1. IP地址 ? IP地址,就是每一個接入互聯(lián)網(wǎng)的主機的唯一身份標識,IP地址 ? 0-255組成的,分成了4段,每段0-255 ? IP地

============================ 1. IP地址 ? IP地址,就是每一個接入互聯(lián)網(wǎng)的主機的唯一身份標識,IP地址 ? 0-255組成的,分成了4段,每段0-255 ? IP地址分類:ABCDE ? 局域網(wǎng):192.168開頭 ? 本地回環(huán)地址:127.0.0.1 每一個電腦,網(wǎng)卡正常工作,主機的IP就是127.0.0.1 ? IP地址這個事物也是對象,對IP地址對象的描述類 ? java.net.InetAddress ? 私有構(gòu)造方法,靜態(tài)方法返回本類對象的 ? static InetAddress getLocalHost() 獲取本地主機IP地址對象 ? 這個方法在哪個機器上運行,那個機器就是本地主機 ? ? InetAddress類中的兩個方法 getHostAddress()通過IP地址對象,獲取IP地址 ? InetAddress類中的兩個方法 getHostName()通過IP地址對象,獲取主機名 ? 如果獲取一臺主機的IP或者主機名,必須先獲取到一臺主機的IP對象(InetAddress) ? 獲取遠程主機IP地址對象 ? static InetAddress getByName(String host) 參數(shù),傳遞主機名,傳遞IP地址 /* ?* 獲取本地主機IP地址對象 ?* InetAddress類的靜態(tài)方法 getLocalHost ?*/ import java.net.*; public class InetAddressDemo { ?public static void main(String[] args)throws UnknownHostException { ? InetAddress i = InetAddress.getLocalHost(); ? System.out.println(i);//機器名/IP地址 ? //獲取主機名 ? String name = i.getHostName(); ? //獲取IP地址 ? String ip = i.getHostAddress(); ? System.out.println(name+"..."+ip); ?} }
?//=================================================== 2. 端口號 ? 操作系統(tǒng)的一個數(shù)字物理標識 ? 看成是進入或者出去操作系統(tǒng)的一個門牌號 ? 我郵寄一個包裹 昌平建材城西路100號 ? 收件:大興黃村北路200號 ? 端口號 0-1024操作系統(tǒng)保留號 ? 最大65535 ? 常見端口號: ? ? 80 http訪問互聯(lián)網(wǎng)的默認端口號 ? ? http://www.baidu.com:80 ? ? 21 FTP數(shù)據(jù)傳輸端口號 ? ? 8080 Javaweb服務(wù)器默認端口號 ? ? 3306 MySQL數(shù)據(jù)的連接端口號 ? ? 1521 Oracle數(shù)據(jù)庫連接端口號 ? ? 1433 MS SQLServer數(shù)據(jù)庫連接端口號 //=================================================== 3. 傳輸協(xié)議 ? 發(fā)送,接受兩個方面約定好的內(nèi)容 ? 兩個人打電話,相約晚上11點-11點30分可以通話,語音采用中文 ? UDP -- 面向無連接協(xié)議 ? 通信雙方不需要連接 ? 不需要連接,不可靠,丟數(shù)據(jù) ? 連接效率很高 ? 不允許傳輸大數(shù)據(jù),限制在64KB以內(nèi) ? TCP -- 面向連接協(xié)議 ? 通信雙方需要建立連接,三次握手,效率底下 ? 連接,安全可靠協(xié)議,不丟失數(shù)據(jù) ? 適合于大數(shù)據(jù)傳輸 //=================================================== 4. Socket服務(wù) ?Socket就是為網(wǎng)絡(luò)服務(wù)提供的一種機制 ?通信的兩端都有Socket ?提供接收和發(fā)送功能的 ?寫功能的時候,接收還是發(fā)送的,必須有Socket服務(wù) ?UDP的傳輸 ? 分為發(fā)送端和接收端 ? 發(fā)送端: ? ? A 發(fā)送的數(shù)據(jù)封包 -- 封裝數(shù)據(jù)包的類,DatagramPacket ? ? B 將封裝好的數(shù)據(jù)包,交給Socket進行發(fā)送 -- DategramSocket ? ? C 關(guān)閉資源 ? 接收端: ? ? A. 接收數(shù)據(jù)包,Socket接收 ? ? B. 拆包 ? ? C. 拆包后的信息,顯示出來 ? ? D. 關(guān)閉資源 ? ? DategramPacket數(shù)據(jù)包: ? ? 構(gòu)造方法DatagramPacket(byte[] buf, int length, InetAddress address, int port) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 字節(jié)數(shù)據(jù) 長度 IP地址 端口號 ? ? 構(gòu)造方法DatagramPacket(byte[] buf, int length) 接收 ? ? int getLength() 接收數(shù)據(jù)包中,數(shù)組的有效個數(shù) ? ? int getPort()獲取發(fā)送端口號 ? ? InetAddress getAddress()返回發(fā)送端的IP地址對象 ? ?DatagramSocket發(fā)送包,接收包 ? ?構(gòu)造方法,發(fā)送時候空參數(shù)的 ? ?發(fā)送方法,send(數(shù)據(jù)包) ? ?構(gòu)造DatagramSocket(int port) 接收,傳遞端口號 ? ?接收的方法 receive(數(shù)據(jù)包)
/* ?* UDP發(fā)送端 ?*/ import java.net.*; import java.util.Scanner; public class UDPSend { ?public static void main(String[] args) throws Exception{ ? new Scanner(System.in).nextLine(); ? //將數(shù)據(jù)封裝到數(shù)據(jù)包 DategramPacket ? byte[] bytes = "你好UDP".getBytes(); ? DatagramPacket dp = new ? ? DatagramPacket(bytes, bytes.length, InetAddress.getByName("127.0.0.1"),10000); ? //創(chuàng)建投遞服務(wù)的Socket對象,DatagramSocket ? DatagramSocket ds = new DatagramSocket(8000); ? //將數(shù)據(jù)包,交給Socket發(fā)送 ? ds.send(dp); ? //關(guān)閉資源 ? ds.close(); ?} }

/* ?* UDP的接收端 ?*/ import java.net.*; public class UDPReceive { ?public static void main(String[] args) throws Exception{ ? //創(chuàng)建投遞服務(wù)的Socket對象 ? DatagramSocket ds = new DatagramSocket(10000); ? //定義數(shù)據(jù)包,接收 ? byte[] bytes = new byte[10]; ? DatagramPacket dp = new DatagramPacket(bytes,bytes.length); ? //Socket接收數(shù)據(jù)包 ? ds.receive(dp); ? //獲取數(shù)組中的有效個數(shù) ? int length = dp.getLength(); ? //獲取端口號 ? int port = dp.getPort(); ? //獲取發(fā)送端的IP地址對象 ? InetAddress i = dp.getAddress(); ? String ip = i.getHostAddress(); ? //輸出全部的信息 ? System.out.println(new String(bytes,0,length)+"..."+ip+"..."+port); ? //關(guān)閉資源 ? ds.close(); ? ?} }
//=================================================== 5. TCP ? 客戶端和服務(wù)器 ? 建立連接,客戶端必須連接服務(wù)器,否則程序無法運行 ? 客戶端的Socket服務(wù),Socket ? 服務(wù)器端的Socket服務(wù),ServerSocket ? Socket類構(gòu)造方法 Socket(String host, int port) ? 構(gòu)造方法,一旦執(zhí)行,就會去連接服務(wù)器,如果沒有服務(wù)器,拋出異常 ? ?OutputStream getOutputStream() 通過Socket對象獲取字節(jié)輸出流 ? ?InputStream getInputStream()通過Socket對象獲取字節(jié)輸入流 ? ?ServerSocket類構(gòu)造方法ServerSocket(int port) ?Socket accept()獲取客戶端的連接對象,這個方法告訴服務(wù)器,是哪一個客戶端連接的 ?客戶端通過自己Socket獲取字節(jié)輸出流,向服務(wù)器發(fā)送數(shù)據(jù) ?服務(wù)器通過客戶端連接對象Socket獲取字節(jié)輸入流,讀取客戶端發(fā)送的數(shù)據(jù) ?服務(wù)器通過客戶端連接對象Socket獲取字節(jié)輸出流,向客戶端發(fā)送數(shù)據(jù) ?客戶端通過字節(jié)的Socket對象獲取字節(jié)輸入流,讀取服務(wù)器發(fā)回的數(shù)據(jù)

?/* ?* TCP的客戶端 ?*/ import java.io.*; import java.net.*; public class TCPClient { ?public static void main(String[] args)throws Exception { ? //創(chuàng)建客戶端的Socket對象 ? Socket s = new Socket("127.0.0.1",10000); ? //將數(shù)據(jù)傳輸?shù)椒?wù)器,字節(jié)輸出流 ? OutputStream out = s.getOutputStream(); ? //寫,字節(jié)數(shù)組 ? out.write("你好TCP".getBytes()); ? ? //客戶端獲取服務(wù)器發(fā)回的信息,字節(jié)輸入流 ? InputStream in = s.getInputStream(); ? byte[] bytes = new byte[10]; ? int len = 0 ; ? len = in.read(bytes); ? System.out.println(new String(bytes,0,len)); ? //關(guān)閉資源 ? s.close(); ?} }


/* ?* TCP服務(wù)器 ?*/ import java.io.*; import java.net.*; public class TCPServer { ?public static void main(String[] args) throws Exception{ ? //創(chuàng)建服務(wù)器的Socket服務(wù) ? ServerSocket ss = new ServerSocket(10000); ? //知道是哪個客戶端連接的 ? Socket s = ss.accept();//線程等,等著客戶端連接 ? //有了客戶端對象Socket,完全可以使用客戶端連接對象,獲取IO流 ? //獲取字節(jié)輸入流 ? InputStream in = s.getInputStream(); ? byte[] bytes = new byte[10]; ? int len = 0 ; ? len = in.read(bytes); ? System.out.println(new String(bytes,0,len)); ? ? //服務(wù)器回客戶端一個信息,謝謝收到了 ? OutputStream out = s.getOutputStream(); ? out.write("謝謝收到了".getBytes()); ? s.close(); ? ss.close(); ?} } //=================================================== 6. TCP的案例 ?鍵盤錄入字母,發(fā)送給服務(wù)器,服務(wù)器轉(zhuǎn)成大寫字母,回傳客戶端,客戶端讀取服務(wù)器發(fā)回的大寫字母 ?通過案例暴露很多問題 ? ?A. 鍵盤讀取 OK ? ?B. 讀取到的鍵盤,發(fā)出去沒有,OK ? ?C. 服務(wù)器收到了嗎,服務(wù)器收到了 readLine()方法線程阻塞,等著讀 OK ? ?D. 服務(wù)器大寫數(shù)據(jù)發(fā)回了嗎 OK ? ?E. 客戶端讀取到了 OK
/* ?* 轉(zhuǎn)成大寫客戶端 ?*/ import java.io.*; import java.net.*; public class TCPClientToUpperCase { ?public static void main(String[] args) throws Exception{ ? //建立Socket服務(wù) ? Socket s = new Socket("127.0.0.1",10000); ? //讀取鍵盤輸入 ? BufferedReader bfr = new ? ? BufferedReader(new InputStreamReader(System.in)); ? ? //建立字節(jié)流對象,轉(zhuǎn)成字符流,讀取服務(wù)器發(fā)回的大寫字母 ? BufferedReader bfrin = ? ? new BufferedReader(new InputStreamReader(s.getInputStream())); ? ? //向服務(wù)器發(fā)送數(shù)據(jù),采用打印流 ? PrintWriter out = new PrintWriter(s.getOutputStream(),true); ? String line = null; ? while((line = bfr.readLine())!=null){ ? ?if("over".equals(line))break; ? ?out.println(line); ? ?//將數(shù)據(jù)打印到服務(wù)器,讀取服務(wù)器回來的大寫 ? ?String server = bfrin.readLine(); ? ?System.out.println("大寫字母是::"+server); ? } ? bfr.close(); ? s.close(); ?} }
/* ?* 轉(zhuǎn)換大寫服務(wù)器 ?*/ import java.io.*; import java.net.*; public class TCPServerToUpperCase { ?public static void main(String[] args) throws Exception{ ? //建立服務(wù)器Socket,獲取客戶端連接對象 ? ServerSocket ss = new ServerSocket(10000); ? Socket s = ss.accept(); ? //讀取客戶端的小寫字母,都是文本,按行讀 ? BufferedReader bfrin = new ? ? BufferedReader(new InputStreamReader(s.getInputStream())); ? ? //創(chuàng)建打印流對象,將大寫數(shù)據(jù),寫回客戶端 ? PrintWriter out = new PrintWriter(s.getOutputStream(),true); ? ? String line = null; ? while((line = bfrin.readLine())!=null){ ? ?if("over".equals(line)) ? ? break; ? ? out.println(line.toUpperCase()); ? } ? s.close(); ? ss.close(); ?} }


//=================================================== 7. TCP文本上傳 ?將C盤上的源文件,通過TCP服務(wù)器傳遞到D盤upload目錄中 ? ?客戶端 ? ?IO讀取文本文件 ? ?打印流,將文本打印到服務(wù)器 ? ?讀取上傳成功四個字 ?服務(wù)器 ? ?讀取客戶端的文本文件,保存到目的中(D盤) ? ?將上傳成功四個字,會給客戶端 ? ?服務(wù)器停不下來 ?服務(wù)器讀取的是Socket中的字節(jié)流null; ?客戶端,和服務(wù)器之間,約定一個結(jié)束標記 ?java工程師們很善良,定義好了結(jié)束標記 ?Socket類中的方法 void shutdownOutput()
/* ?* TCP文本上傳客戶端 ?*/ import java.io.*; import java.net.*; public class TCPCilentUpLoad { ?public static void main(String[] args) throws Exception{ ? Socket s = new Socket("127.0.0.1", 10000); ? //字符流,讀取文本文件 ? BufferedReader bfr = new BufferedReader(new FileReader("c:\1.txt")); ? //將文本使用打印流,打印到服務(wù)器 ? PrintWriter out = new PrintWriter(s.getOutputStream(),true); ? String line = null; ? while((line=bfr.readLine())!=null){ ? ?out.println(line); ? } ? //out.println("*&^%$#@@#$TRJHGFD&%^$#@"); ? s.shutdownOutput(); ? //讀取服務(wù)器的上傳成功 ? InputStream in = s.getInputStream(); ? byte[] bytes = new byte[10]; ? int len = in.read(bytes); ? System.out.println("服務(wù)器說::"+new String(bytes,0,len)); ? bfr.close(); ? s.close(); ?} }


* ?* 文本上傳服務(wù)器 ?*/ import java.io.*; import java.net.*; import java.util.*; public class TCPServerUpLoad { ?public static void main(String[] args)throws Exception { ? ServerSocket ss = new ServerSocket(10000); ? Socket s = ss.accept(); ? //讀取客戶端的數(shù)據(jù),轉(zhuǎn)換流 ? BufferedReader bfrin = new ? ? BufferedReader(new InputStreamReader(s.getInputStream())); ? //將目的封裝成File對象 ? File file = new File("d:\upload"); ? if(!file.exists()) ? ?file.mkdirs(); ? //封裝數(shù)據(jù)目的,使用打印流 ? //對上傳的文件名修改 ? String filename = "itcast"+System.currentTimeMillis()+new Random().nextInt(999999999)+".txt"; ? PrintWriter pw = new PrintWriter(new FileWriter(file+File.separator+filename),true); ? String line = null; ? while((line = bfrin.readLine())!=null){ ? ?pw.println(line); ? } ? //上傳成功寫回客戶端 ? ? OutputStream out = s.getOutputStream(); ? out.write("上傳成功".getBytes()); ? pw.close(); ? s.close(); ? ss.close(); ?} }

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

上海2025年9月1日 /美通社/ -- 8月29日,由國際獨立第三方檢測、檢驗和認證機構(gòu)德國萊茵TÜV大中華區(qū)(簡稱"TÜV萊茵")...

關(guān)鍵字: 工程師 REGULATION 基礎(chǔ)知識 智能化

上海2024年8月29日 /美通社/ -- 8月18日,上海交通大學上海高級金融學院(高金/SAIF)金融MBA"科技金融實驗班"啟動日在徐匯校區(qū)舉行。啟動日當天正式揭曉了首屆"科技金融實驗班"的培養(yǎng)體系與課程模塊。在現(xiàn)...

關(guān)鍵字: 人工智能 基礎(chǔ)知識 電子信息 節(jié)點

Python和Java是兩種廣泛應(yīng)用于編程領(lǐng)域的高級編程語言,它們各有優(yōu)劣。本文從程序設(shè)計應(yīng)用、系統(tǒng)資源占用、高性能處理和語言特點等四方面詳細介紹兩種編程語言的區(qū)別。

關(guān)鍵字: python java 高性能處理

全世界數(shù)以百萬計的工程師和科學家都在使用 MATLAB? 分析和設(shè)計改變著我們的世界的系統(tǒng)和產(chǎn)品?;诰仃嚨?MATLAB 語言是世界上表示計算數(shù)學最自然的方式。

關(guān)鍵字: matlab入門 教學 基礎(chǔ)知識

MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學軟件,用于數(shù)據(jù)分析、無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理、機器人,控制系統(tǒng)等領(lǐng)域。

關(guān)鍵字: matlab入門 命令 基礎(chǔ)知識

在這篇文章中,小編將為大家?guī)鞪ava接口的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: java 接口 Interface

MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學軟件,用于數(shù)據(jù)分析、無線通信、深度學習、圖像處理與計算機視覺、信號處理、量化金融與風險管理、機器人,控制系統(tǒng)等領(lǐng)域。

關(guān)鍵字: matlab入門 基礎(chǔ)知識 信號處理

上海2023年2月14日 /美通社/ -- 步入2023年第一個季度,市場依然在震蕩中前行。作為一家全球領(lǐng)先的金融科技經(jīng)紀商,ATFX為了給全球客戶提供具有前瞻性的分析報告,分析師團隊早已密切關(guān)注金融市場動態(tài),結(jié)合各國經(jīng)...

關(guān)鍵字: ANTI RAM 基礎(chǔ)知識 SIC

應(yīng)該有不少小伙伴有假期打工的經(jīng)歷,那今天就來給公眾號的讀者朋友們分享一個二哥編程星球里一個球友在富士康打工 50 天的感受,相信大家看完后會深深觸動的。

關(guān)鍵字: 物聯(lián)網(wǎng) java 博客

我們前面主要去學習了藍牙開發(fā)所具備的基礎(chǔ)知識、常用的仿真手法,那么如何去分析我們抓到的藍牙通信包呢?不去學習藍牙通信協(xié)議,只能把抓到的Log信息,交給能看懂的人,你也最終只能當一個測試工程師了。

關(guān)鍵字: 基礎(chǔ)知識 仿真手法 藍牙通信
關(guān)閉