黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

Java socket編程詳解

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

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美日韩一区二区不卡三区 | 亚洲成a人片在线观看中文!!! | 玖玖在线播放 | 最近新韩国日本免费看 | 在线免费午夜视频 | 国产在线观看成人 | 成年日韩免费大片黄在线观看 | 黄色一级视频欧美 | 成人免费短视频 | 久久精品国产欧美日韩99热 | 在线 成人 | 欧美成人第一页 | 成年网站在线看 | 亚洲性爰视频 | 国产三级a三级三级天天 | 亚洲一级片免费看 | 一级一级一级毛片免费毛片 | 亚欧成人 | 多多多色麻豆 | 欧美理论片在线观看一区二区 | 成人免费观看www在线 | 久久不雅视频 | 狠狠色噜狠狠狠狠色综合久 | 在线视频精品免费 | 成人国产欧美精品一区二区 | 热99视频| 天天操天天干天天射 | 日本a一级片 | 欧美怡红院免费的视频 | 久99久精品视频免费观看v | 黄 色 片成 人免费观看 | 怡春院日本一区二区久久 | 欧美日韩国产一区二区三区伦 | 九九成人免费视频 | 午夜在线视频 | 午夜视频在线观看国产 | 日产国产精品亚洲系列 | 久久不卡一区二区三区 | 亚洲精品1区| 2019亚洲日韩新视频 | 动漫美女羞羞网站 |