大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java socket編程詳解

Java socket編程詳解

更新時間:2022-06-06 10:36:51 來源:動力節點 瀏覽1509次

Java Socket 編程用于在不同 JRE 上運行的應用程序之間進行通信。

Java Socket 編程可以是面向連接的或無連接的。

Socket 和 ServerSocket 類用于面向連接的套接字編程,DatagramSocket 和 DatagramPacket 類用于無連接的套接字編程。

套接字編程中的客戶端必須知道兩個信息:

1.服務器的 IP 地址,以及

2.端口號。

在這里,我們將進行單向的客戶端和服務器通信。在此應用程序中,客戶端向服務器發送消息,服務器讀取消息并打印。這里使用了兩個類:Socket 和 ServerSocket。Socket 類用于客戶端和服務器之間的通信。通過這個類,我們可以讀寫消息。ServerSocket 類用于服務器端。ServerSocket 類的 accept() 方法會阻塞控制臺,直到客戶端連接。客戶端連接成功后,返回服務端的Socket實例。

套接字類

套接字只是機器之間通信的端點。Socket 類可用于創建套接字。

重要方法

方法 描述
公共輸入流 getInputStream() 返回與此套接字連接的 InputStream。
公共輸出流 getOutputStream() 返回與此套接字連接的 OutputStream。
公共同步無效關閉() 關閉此套接字

服務器套接字類

ServerSocket 類可用于創建服務器套接字。該對象用于建立與客戶端的通信。

重要方法

方法 描述
公共套接字接受() 返回套接字并在服務器和客戶端之間建立連接。
公共同步無效關閉() 關閉服務器套接字。

Java Socket 編程示例

創建服務器:

要創建服務器應用程序,我們需要創建 ServerSocket 類的實例。在這里,我們使用 6666 端口號進行客戶端和服務器之間的通信。您也可以選擇任何其他端口號。accept() 方法等待客戶端。如果客戶端使用給定的端口號連接,它會返回一個 Socket 實例。

ServerSocket ss=新的 ServerSocket(6666 );  
套接字 s=ss.accept(); //建立連接并等待客戶端   

創建客戶端:

要創建客戶端應用程序,我們需要創建 Socket 類的實例。在這里,我們需要傳遞服務器的 IP 地址或主機名以及端口號。在這里,我們使用“localhost”,因為我們的服務器在同一系統上運行。

套接字 s=新 套接字(“本地主機” ,6666 );  

讓我們看一個簡單的 Java 套接字編程,其中客戶端發送文本,服務器接收并打印它。

文件:MyServer.java

導入 java.io.*;  
導入 java.net.*;  
公共類 MyServer {   
公共靜態無效 主要(字符串[]參數){    
試試{  
ServerSocket ss=新的 ServerSocket(6666 );  
套接字 s=ss.accept(); //建立連接   
DataInputStream dis= new  DataInputStream(s.getInputStream());  
字符串 str=(String)dis.readUTF();  
System.out.println( "message=" +str);  
ss.close();  
}捕捉(異常 e){System.out.println(e);}  
}  
}  

文件:MyClient.java

導入 java.io.*;  
導入 java.net.*;  
公共類 MyClient {   
公共靜態無效 主要(字符串[]參數){    
試試{      
套接字 s=新 套接字(“本地主機” ,6666 );  
DataOutputStream dout= new  DataOutputStream(s.getOutputStream());  
dout.writeUTF( "你好服務器" );  
dout.flush();  
dout.close();  
s.close();  
}捕捉(異常 e){System.out.println(e);}  
}  
}  

Java Socket 編程示例(讀寫雙方)

在此示例中,客戶端將首先寫入服務器,然后服務器將接收并打印文本。然后服務器將寫入客戶端,客戶端將接收并打印文本。步驟繼續。

文件:MyServer.java

導入 java.net.*;  
導入 java.io.*;  
類我的 服務器{  
公共靜態void  main(String args[])拋出 異常{    
ServerSocket ss=新的 ServerSocket(3333 );  
套接字 s=ss.accept();  
DataInputStream din= new  DataInputStream(s.getInputStream());  
DataOutputStream dout= new  DataOutputStream(s.getOutputStream());  
BufferedReader br= new  BufferedReader( new  InputStreamReader(System.in));   
字符串 str= "" ,str2= "" ;  
而(!str.equals(“停止” )){  
str=din.readUTF();  
System.out.println( "客戶說:" +str);  
str2=br.readLine();  
dout.writeUTF(str2);  
dout.flush();  
}  
din.close();  
s.close();  
ss.close();  
}}  

文件:MyClient.java

導入 java.net.*;  
導入 java.io.*;  
類我的 客戶{  
公共靜態void  main(String args[])拋出 異常{    
套接字 s=新 套接字(“本地主機” ,3333 );  
DataInputStream din= new  DataInputStream(s.getInputStream());  
DataOutputStream dout= new  DataOutputStream(s.getOutputStream());  
BufferedReader br= new  BufferedReader( new  InputStreamReader(System.in));   
字符串 str= "" ,str2= "" ;  
而(!str.equals(“停止” )){  
str=br.readLine();  
dout.writeUTF(str);  
dout.flush();  
str2=din.readUTF();  
System.out.println( "服務器說:" +str2);  
}   
dout.close();  
s.close();  
}}  

以上就是關于“Java socket編程詳解”的介紹,大家如果想了解更多相關知識,不妨來關注一下動力節點的Java視頻教程,里面的課程內容由淺到深,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品成人久久久 | 日韩欧美一区二区在线 | 亚洲 国产 图片 | 国产日产欧美精品一区二区三区 | 久草视频在线网 | 欧美一级欧美一级毛片 | 黄色毛片视频网站 | 欧美日韩视频在线第一区 | 色姑娘色综合 | 成人性色生活片免费网 | 国产农村1级毛片 | 青青青久在线视频免费观看 | 色大18成网站www在线观看 | 国产成人精品免费视频 | 欧美激情_区二区三区 | 亚洲视频 在线观看 | 国产精品小视频在线观看 | 欧美真人视频一级毛片 | 美国特级成人毛片 | 成人网久久 | 国产高清在线精品一区二区三区 | 四虎在线最新永久免费播放 | avtt男人天堂 | 久久99精品一久久久久久 | 国产精品成人在线播放 | 甜心女孩泰剧在线观看 | 高清免费毛片 | 国产成人精品高清在线观看99 | 97久久国语露脸精品对白 | 99久久综合国产精品免费 | 亚洲综合视频在线观看 | 国产午夜精品一区二区三区 | 欧美日韩国产高清精卡 | 国产精品入口麻豆 | 成人青草亚洲国产 | 一级a毛片免费 | 韩国日本三级在线观看 | 四虎4hu永久免费视频大全 | 午夜a毛片 | 中文字幕一区视频一线 | 午夜一级毛片看看 |