自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)單介紹Java 網(wǎng)絡(luò)程序

開(kāi)發(fā) 后端
本文介紹的是java的網(wǎng)絡(luò)程序,希望對(duì)你有幫助,一起來(lái)看。

網(wǎng)絡(luò)程序,一般是指帶網(wǎng)絡(luò)接連或需要網(wǎng)絡(luò)接連才能使用的或能脫機(jī)和聯(lián)機(jī)使用的新型智能程序。Java在網(wǎng)絡(luò)編程這個(gè)地方做的很好,java的主要目的也是為了網(wǎng)絡(luò)而生的,它能方便的訪問(wèn)網(wǎng)絡(luò)上的資源。我們這節(jié)課來(lái)介紹網(wǎng)絡(luò)通訊的兩種機(jī)制:URL通信機(jī)制,Socket通信機(jī)制。

URL表示了Internet上一個(gè)資源的引用或地址。Java網(wǎng)絡(luò)應(yīng)用程序也是使用URL來(lái)定位要訪問(wèn)的Internet的資源。在jdk里面java.net.URL也是一個(gè)類,它來(lái)封裝URL的一些細(xì)節(jié)。目前大家可以把URL理解為網(wǎng)址,http://www.100jq.com/default.aspx 這就是個(gè)URL。http是協(xié)議名(超文本傳輸協(xié)議)用“://”隔開(kāi)www.100jq.com 是主機(jī)名。Default.aspx是文件名。它的端口號(hào)沒(méi)有寫,默認(rèn)是80。

實(shí)踐:

  1. import java.net.*;  
  2. public class ParseURL {  
  3. public static void main(String[] args) throws MalformedURLException{  
  4. URL url = new URL("http://www.100jq.com:45175/default.aspx");  
  5. System.out.println("協(xié)議是 "+url.getProtocol());  
  6. System.out.println("主機(jī)是 "+url.getHost());  
  7. System.out.println("文件名是 "+url.getFile());  
  8. System.out.println("端口號(hào)是 "+url.getPort());  
  9. }}  
  10. /*  
  11. URL這個(gè)對(duì)象中提供了很多方法像是  
  12. getProtocol()  
  13. getHost()  
  14. getFile()  
  15. getPort()  
  16. */ 

我們可以通過(guò)URL對(duì)文件或資源讀取,也可以通過(guò)URLConnection讀取,也可以通過(guò)這個(gè)寫入數(shù)據(jù)限于cgi腳本。

實(shí)踐:

  1. import java.net.*;  
  2. import java.io.*;  
  3. public class URLConnectionReader {  
  4. public static void main(String[] args) throws IOException {  
  5. URL google = new URL("http://www.100jq.com/");  
  6. URLConnection g = google.openConnection();  
  7. BufferedReader in = new BufferedReader(new InputStreamReader(g.getInputStream()));  
  8. String inputLine;  
  9. while ((inputLine=in.readLine())!=null)  
  10. System.out.println(inputLine);  
  11. in.close();  
  12. }  

URL和URLConnection類提供了較高層次的網(wǎng)絡(luò)訪問(wèn)。有時(shí)候需要進(jìn)行較低層次的訪問(wèn)。編寫C/S模型的程序時(shí),就要使用Socket通信機(jī)制了。因?yàn)樵诰W(wǎng)絡(luò)上不一定非得訪問(wèn)文件。

實(shí)踐:

  1. //先寫個(gè)客戶端的應(yīng)用  
  2. import java.net.*;  
  3. import java.io.*;  
  4. public class SimpleClient {  
  5. public static void main(String args[]) {  
  6. try {  
  7. // 在5432端口打開(kāi)服務(wù)器連接  
  8. // 在這里用localhost與127.0.0.1是一個(gè)意思  
  9. Socket s1 = new Socket("127.0.0.1"5432);   
  10. // 對(duì)這個(gè)端口連接一個(gè)reader,注意端口不能夠占用別的  
  11. BufferedReader br = new BufferedReader(  
  12. new InputStreamReader(s1.getInputStream()));  
  13. // 讀取輸入的數(shù)據(jù)并且打印在屏幕上  
  14. System.out.println(br.readLine());  
  15. //當(dāng)完成時(shí)關(guān)閉流和連接  
  16. br.close();  
  17. s1.close();  
  18. catch (ConnectException connExc) {  
  19. System.err.println("Could not connect to the server.");  
  20. catch (IOException e) {  
  21. // ignore  
  22. }}}  
  23. //這是服務(wù)端的應(yīng)用  
  24. import java.net.*;  
  25. import java.io.*;  
  26. public class SimpleServer {  
  27. public static void main(String args[]) {  
  28. ServerSocket s = null;  
  29. // 注冊(cè)服務(wù)端口為5432  
  30. try {  
  31. s = new ServerSocket(5432);  
  32. catch (IOException e) {  
  33. e.printStackTrace();  
  34. }  
  35. // 運(yùn)行監(jiān)聽(tīng)器并接收,永遠(yuǎn)循環(huán)下去。因?yàn)榉?wù)器總要開(kāi)啟的  
  36. while (true) {  
  37. try {  
  38. // 等待一個(gè)連接的請(qǐng)求  
  39. Socket s1 = s.accept();  
  40. // 得到端口的輸出流  
  41. OutputStream s1out = s1.getOutputStream();  
  42. BufferedWriter bw = new BufferedWriter(  
  43. new OutputStreamWriter(s1out));  
  44. // 發(fā)送一個(gè)字符串  
  45. bw.write("百家拳軟件項(xiàng)目研究室歡迎您!/n");  
  46. // 關(guān)閉這個(gè)連接, 但不是服務(wù)端的socket  
  47. bw.close();  
  48. s1.close();  
  49. catch (IOException e) {  
  50. e.printStackTrace();  
  51. }}}} 

 

執(zhí)行這個(gè)程序和其它的不太一樣,先用javac將兩個(gè)文件編譯之后。然后敲start開(kāi)啟另一個(gè)窗口。用start命令開(kāi)啟的窗口繼承了原來(lái)窗口的特性。

接著在原來(lái)的窗口上執(zhí)行服務(wù)端程序java SimpleServer.在新窗口中執(zhí)行java SimpleClient 就會(huì)看到結(jié)果了。注意如果如果在啟動(dòng)服務(wù)端的時(shí)候拋出bindException則說(shuō)明5432這個(gè)端口已經(jīng)被別的程序占用著,改成別的端口號(hào)就可以了。通常選用端口的時(shí)候,其數(shù)字最好不要小于1024,1024一下的端口很多都是專用的端口。

希望通過(guò)本文的介紹,能給你帶來(lái)幫助。

【編輯推薦】

  1. 詳細(xì)介紹JAVA和C++區(qū)別
  2. 詳細(xì)介紹Java EE開(kāi)發(fā)四大常用框架
  3. 分析JAVA的Random類
  4. 談java web server與io形式
  5. 談JAVA靜態(tài)載入的兩種方式
責(zé)任編輯:于鐵 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2020-09-11 12:49:27

神經(jīng)網(wǎng)絡(luò)

2009-07-29 15:15:31

ASP應(yīng)用程序

2010-07-08 13:39:12

HART協(xié)議

2011-06-27 13:17:07

Java EE

2010-06-24 10:42:42

Bzip2壓縮

2010-03-16 18:44:55

Ubuntu 8.10

2009-06-17 17:59:01

介紹Spring

2011-02-24 14:40:47

Proftpd

2011-02-23 13:28:12

2011-01-21 16:49:15

Zimbra

2011-01-21 10:40:52

Sendmail

2010-03-15 15:49:01

Ubuntu 8.10

2011-04-01 09:39:17

zabbix

2011-03-04 13:19:09

VSFTP介紹

2011-01-21 18:08:22

Qmail

2011-02-22 16:38:03

Konqueror

2011-03-29 09:14:37

2011-07-11 14:19:54

JAVA串口通信

2011-06-28 11:27:19

java克隆對(duì)象

2009-09-07 16:09:19

C#和Java特點(diǎn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)