大战熟女丰满人妻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視頻教程,里面的課程內容由淺到深,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 波多野结衣国产一区二区三区 | 国产精品永久免费 | 91av在线国产 | 中文国产成人精品久久无广告 | 欧美成人天天综合天天在线 | 国产福利在线小视频 | 视频一区二区三区在线观看 | 中文国产成人精品久久水 | 国产一区二区在线 |播放 | 色涩网站在线观看 | 久久这里只有免费精品6www | 中文字幕亚洲一区二区va在线 | 国产高清自拍视频 | 五月婷婷激情五月 | 在线理论视频 | 久久综合九色综合国产 | 亚欧视频在线观看 | 亚洲图片综合 | 福利视频专区 | 天天操天天爽天天射 | 欧美白人极品性喷潮 | 一级毛片秋霞特色大片 | 精品久久久久久久 | 加勒比黑人在线 | 国产一级精品毛片 | 久久成人精品免费播放 | 黄色综合 | 离线枕边人在线观看 | 久久久久久久一线毛片 | 99热最新 | 夜夜爽网站 | 爱我久久国产精品 | 在线日韩不卡 | 日本欧美大片 | 亚洲日韩精品欧美一区二区一 | 91精品久久久久亚洲国产 | 免费乱理伦片在线观看老妇 | 免费视频网站在线观看黄 | 久久国产影视免费精品 | 色久影院 | 日韩免费高清一级毛片久久 |