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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产特级毛片aaaaaa | 日日艹夜夜 | 久久精品国产99国产 | 狠狠操天天射 | 极品毛片 | 久久精品观看影院2828 | 久热热热 | 中文字幕精品视频 | 国产毛片一级国语版 | 久久精品乱子伦免费 | 国产毛片久久久久久国产毛片 | 国产成人精品亚洲777图片 | 五月国产综合视频在线观看 | 欧美日韩国产在线 | 欧美色视频日本片免费高清 | 免费爱爱视频 | 成年女人免费视频播放77777 | 欧美成年黄网站色视频 | 国产一区二区三区在线观看精品 | 青青国产成人久久激情911 | 免费看色 | 久久精品re | 日日干夜夜操 | 日本久久网站 | 国内精品久久久久久麻豆 | 999在线免费视频 | 奇米影视7777777 | 国产乱码视频 | 国产精品k| 日韩在线a视频免费播放 | 在线免费观看亚洲 | 日韩免费大片 | 日韩欧美亚洲每的更新在线 | 国产亚洲精品久久久久久久软件 | 日日射天天操 | 视频播放在线观看精品视频 | 国产在线视频99 | 不卡中文一二三区 | 久久久久久网 | 亚洲精品乱码久久久久蜜桃 | 久久精品一区二区三区不卡牛牛 |