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

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

Java socket編程詳解

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

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

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

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

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

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

2.端口號。

在這里,我們將進行單向的客戶端和服務器通信。在此應用程序中,客戶端向服務器發送消息,服務器讀取消息并打印。這里使用了兩個類:Socket 和 ServerSocket。Socket 類用于客戶端和服務器之間的通信。通過這個類,我們可以讀寫消息。ServerSocket 類用于服務器端。ServerSocket 類的 accept() 方法會阻塞控制臺,直到客戶端連接??蛻舳诉B接成功后,返回服務端的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視頻教程,里面的課程內容由淺到深,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 91在线免费视频 | 91国色| 欧美性在线播放 | 成人在线观看不卡 | 国产精品入口麻豆午夜 | 中文字幕精品视频在线 | 久久夜色tv网站免费影院 | 伊人伊人影院 | 国产成人区 | 欧美乱大交xxxxxbbb | swag国产精品一区二区 | 美女超逼| 中文字幕亚洲第一 | 四虎国产精品永久地址51 | 天天操天天射天天插 | 精品国产品国语在线不卡丶 | 桃花综合 | 婷婷色中文网 | a级毛片免费 | 国产深夜福利视频观看 | 亚洲久草| 久久成人午夜 | 婷婷精品进入 | 久久九九爱 | 免费看日韩欧美一级毛片 | 九九在线精品 | 99re在线这里只有精品 | 日韩免费一级片 | 不卡午夜视频 | 天天在线天天综合网色 | 日本精品高清一区二区2021 | 久久九九影视 | 国产一区二区在线 |播放 | 377p欧洲最大胆艺术 | 久草精品在线播放 | 久久频这里精品香蕉久久 | 日韩性生活视频 | 欧美亚洲国产一区 | 97精品国产91久久久久久 | 久青草国产观看在线视频 | 国产成人精品久久亚洲高清不卡 |