91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java SocketAPI關鍵代碼怎么寫以及使用介紹

發布時間:2021-10-23 17:54:01 來源:億速云 閱讀:233 作者:柒染 欄目:編程語言

Java SocketAPI關鍵代碼怎么寫以及使用介紹,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

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

以J2SDK-1.3為例,Java SocketAPI和ServerSocket類庫位于java.net包中。ServerSocket用于服務器端, Socket是建立網絡連接時使用的。在連接成功時,應用程序兩端都會產生一個Socket實例,操作這個實例,完成所需的會話。對于一個網絡連接來說, 套接字是平等的,并沒有差別,不因為在服務器端或在客戶端而產生不同級別。不管是Socket還是ServerSocket它們的工作都是通過 SocketImpl類及其子類完成的。

重要的Java SocketAPI:

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

Accept方法用于產生"阻塞",直到接受到一個連接,并且返回一個客戶端的Socket對象實例。"阻塞"是一個術語,它使程序運行暫時"停留"在這個地方,直到一個會話產生,然后程序繼續;通常"阻塞"是由循環產生的。

getInputStream方法獲得網絡連接輸入,同時返回一個IutputStream對象實例,。

getOutputStream方法連接的另一端將得到輸入,同時返回一個OutputStream對象實例。

注意:其中getInputStream和getOutputStream方法均會產生一個IOException,它必須被捕獲,因為它們返回的流對象,通常都會被另一個流對象使用。

如何開發一個Server-Client模型的程序

開發原理:

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

客戶端,使用Socket對網絡上某一個服務器的某一個端口發出連接請求,一旦連接成功,打開會話;會話完成后,關閉Socket。客戶端不需要指定打開的端口,通常臨時的、動態的分配一個1024以上的端口。

{建立服務器}

  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. }  

這個程序建立了一個服務器,它一直監聽10000端口,等待用戶連接。在建立連接后給客戶端返回一段信息,然后結束會話。這個程序一次只能接受一個客戶連接。

{建立客戶端}

  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. }  

這個客戶端連接到地址為xxx.xxx.xxx.xxx的服務器,端口為10000,并從鍵盤輸入一行信息,發送到服務器,然后接受服務器的返回信息,結束會話。

關于Java SocketAPI關鍵代碼怎么寫以及使用介紹問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

府谷县| 定日县| 温州市| 北海市| 山东省| 灵石县| 祁连县| 衡阳市| 密山市| 台中市| 天柱县| 丹巴县| 儋州市| 南部县| 汨罗市| 基隆市| 邢台县| 尖扎县| 遂宁市| 白水县| 深州市| 富锦市| 静安区| 吉林省| 横峰县| 塘沽区| 玉环县| 江油市| 措勤县| 毕节市| 荔波县| 石泉县| 特克斯县| 深州市| 呼玛县| 林州市| 尼木县| 东方市| 盐边县| 荣昌县| 寻乌县|