成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java SocketAPI關(guān)鍵代碼詳細(xì)使用介紹

開發(fā) 后端
Java SocketAPI在使用的時(shí)候有很多的注意事項(xiàng)。尤其是在關(guān)鍵代碼中的詳細(xì)操作。下面我們就看看如何才能更好的使用有代碼。

Java SocketAPI如何才能夠正常的使用呢?這個(gè)問題就需要我們掌握相關(guān)的代碼。所謂socket通常也稱作"套接字",用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。

以J2SDK-1.3為例,Java SocketAPI和ServerSocket類庫(kù)位于java.net包中。ServerSocket用于服務(wù)器端, Socket是建立網(wǎng)絡(luò)連接時(shí)使用的。在連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會(huì)話。對(duì)于一個(gè)網(wǎng)絡(luò)連接來(lái)說(shuō), 套接字是平等的,并沒有差別,不因?yàn)樵诜?wù)器端或在客戶端而產(chǎn)生不同級(jí)別。不管是Socket還是ServerSocket它們的工作都是通過 SocketImpl類及其子類完成的。#t#

重要的Java SocketAPI:

java.net.Socket繼承于java.lang.Object,有八個(gè)構(gòu)造器,其方法并不多,下面介紹使用最頻繁的三個(gè)方法,其它方法大家可以見JDK-1.3文檔。

Accept方法用于產(chǎn)生"阻塞",直到接受到一個(gè)連接,并且返回一個(gè)客戶端的Socket對(duì)象實(shí)例。"阻塞"是一個(gè)術(shù)語(yǔ),它使程序運(yùn)行暫時(shí)"停留"在這個(gè)地方,直到一個(gè)會(huì)話產(chǎn)生,然后程序繼續(xù);通常"阻塞"是由循環(huán)產(chǎn)生的。

getInputStream方法獲得網(wǎng)絡(luò)連接輸入,同時(shí)返回一個(gè)IutputStream對(duì)象實(shí)例,。

getOutputStream方法連接的另一端將得到輸入,同時(shí)返回一個(gè)OutputStream對(duì)象實(shí)例。

注意:其中g(shù)etInputStream和getOutputStream方法均會(huì)產(chǎn)生一個(gè)IOException,它必須被捕獲,因?yàn)樗鼈兎祷氐牧鲗?duì)象,通常都會(huì)被另一個(gè)流對(duì)象使用。

如何開發(fā)一個(gè)Server-Client模型的程序

開發(fā)原理:

服務(wù)器,使用ServerSocket監(jiān)聽指定的端口,端口可以隨意指定(由于1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不可以隨意使用,所以建議使用大于1024的端口),等待客戶連接請(qǐng)求,客戶連接后,會(huì)話產(chǎn)生;在完成會(huì)話后,關(guān)閉連接。

客戶端,使用Socket對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,打開會(huì)話;會(huì)話完成后,關(guān)閉Socket。客戶端不需要指定打開的端口,通常臨時(shí)的、動(dòng)態(tài)的分配一個(gè)1024以上的端口。

{建立服務(wù)器}

 

 

  1. import java.net.*;  
  2. import java.io.*;  
  3. public class Server  
  4. {  
  5. private ServerSocket ss;  
  6. private Socket socket;  
  7. private BufferedReader in;  
  8. private PrintWriter out;  
  9. public Server()  
  10. {  
  11. try  
  12. {  
  13. ss = new ServerSocket(10000);  
  14.  
  15. while (true)  
  16. {  
  17. socket = ss.accept();  
  18. in = new BufferedReader(new InputStreamReader
    (socket.getInputStream()));  
  19. out = new PrintWriter(socket.getOutputStream(),true);  
  20. String line = in.readLine();  
  21. out.println("you input is :" + line);  
  22. out.close();  
  23. in.close();  
  24. socket.close();  
  25. }  
  26. ss.close();  
  27. }  
  28. catch (IOException e)  
  29. {}  
  30. }  
  31. public static void main(String[] args)  
  32. {  
  33. new Server();  
  34. }  
  35. }  

 

這個(gè)程序建立了一個(gè)服務(wù)器,它一直監(jiān)聽10000端口,等待用戶連接。在建立連接后給客戶端返回一段信息,然后結(jié)束會(huì)話。這個(gè)程序一次只能接受一個(gè)客戶連接。

{建立客戶端}

 

  1. import java.io.*;  
  2. import java.net.*;  
  3. public class Client  
  4. {  
  5. Socket socket;  
  6. BufferedReader in;  
  7. PrintWriter out;  
  8. public Client()  
  9. {  
  10. try  
  11. {  
  12. socket = new Socket("xxx.xxx.xxx.xxx", 10000);  
  13. in = new BufferedReader(new InputStreamReader
    (socket.getInputStream()));  
  14. out = new PrintWriter(socket.getOutputStream(),true);  
  15. BufferedReader line = new BufferedReader(new 
    InputStreamReader(System.in));  
  16. out.println(line.readLine());  
  17. line.close();  
  18. out.close();  
  19. in.close();  
  20. socket.close();  
  21. }  
  22. catch (IOException e)  
  23. {}  
  24. }  
  25. public static void main(String[] args)  
  26. {  
  27. new Client();  
  28. }  
  29. }  

 

這個(gè)客戶端連接到地址為xxx.xxx.xxx.xxx的服務(wù)器,端口為10000,并從鍵盤輸入一行信息,發(fā)送到服務(wù)器,然后接受服務(wù)器的返回信息,***結(jié)束會(huì)話。以上就是對(duì)Java SocketAPI的詳細(xì)介紹。
 

責(zé)任編輯:張浩 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-07-07 17:01:09

MyServlet

2010-03-16 19:46:14

Java線程函數(shù)

2010-03-18 14:27:53

Java Thread

2010-03-18 14:46:18

Java SynDem

2009-12-14 10:42:11

VS 2008代碼

2011-06-21 09:50:51

volatile

2010-03-18 15:47:07

Java創(chuàng)建線程

2020-06-29 14:10:28

JVM參數(shù)配置

2011-06-30 18:43:26

長(zhǎng)尾關(guān)鍵詞

2011-06-21 11:05:41

內(nèi)聯(lián)函數(shù)

2010-03-09 09:55:14

Linux mount

2009-08-21 15:16:23

C#使用指針

2017-10-30 16:50:41

Linuxconst

2010-03-15 17:05:39

Java任務(wù)隊(duì)列

2011-06-15 16:58:26

PHP

2010-03-29 14:09:12

Oracle ID 自

2010-07-12 14:06:12

SQL Server代

2010-06-21 16:57:11

Linux Arch

2010-01-08 14:27:45

JSON 幫助

2010-03-04 10:54:45

Linux telne
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产国产精品久久久久 | 1000部精品久久久久久久久 | 中文一区二区视频 | 国产一区二区三区四区在线观看 | 国产一区二区三区在线 | 毛片a级| av资源中文在线 | 亚洲综合大片69999 | 一级高清 | 先锋av资源网 | 国产一区二区中文字幕 | 视频一区二区在线观看 | 成人午夜激情 | 国产精品99久久久久久宅男 | 黄色三级在线播放 | 黄色在线免费观看 | 777毛片| 一本色道精品久久一区二区三区 | 国产成人高清 | av片免费观看| 99re在线视频精品 | 国产一区视频在线 | 欧美日韩一区二区三区四区五区 | 久久久久久久一区二区三区 | 日本免费在线观看视频 | 国产日韩精品久久 | 精品一区二区三区在线播放 | 中文字幕av色 | 国产精品视频网 | 日本在线网址 | 国产精品99久久久精品免费观看 | 91热在线| 国产日韩欧美精品 | 日韩国产欧美一区 | 超碰激情 | 国产精品美女久久久久久免费 | 激情欧美一区二区三区中文字幕 | 中文字幕一区二区三区在线观看 | 欧美日韩成人 | 欧美日韩亚洲国产 | 国产欧美精品一区二区 |