JavaSocket編程簡介_動力節(jié)點(diǎn)Java學(xué)院整理-創(chuàng)新互聯(lián)

對于Java Socket編程而言,有兩個概念,一個是ServerSocket,一個是Socket。服務(wù)端和客戶端之間通過Socket建立連接,之后它們就可以進(jìn)行通信了。首先ServerSocket將在服務(wù)端監(jiān)聽某個端口,當(dāng)發(fā)現(xiàn)客戶端有Socket來試圖連接它時,它會accept該Socket的連接請求,同時在服務(wù)端建立一個對應(yīng)的Socket與之進(jìn)行通信。這樣就有兩個Socket了,客戶端和服務(wù)端各一個。

成都創(chuàng)新互聯(lián)公司-云計算及IDC服務(wù)提供商,涵蓋公有云、IDC機(jī)房租用、服務(wù)器托管雅安、等保安全、私有云建設(shè)等企業(yè)級互聯(lián)網(wǎng)基礎(chǔ)服務(wù),歡迎聯(lián)系:18980820575

       對于Socket之間的通信其實(shí)很簡單,服務(wù)端往Socket的輸出流里面寫東西,客戶端就可以通過Socket的輸入流讀取對應(yīng)的內(nèi)容。Socket與Socket之間是雙向連通的,所以客戶端也可以往對應(yīng)的Socket輸出流里面寫東西,然后服務(wù)端對應(yīng)的Socket的輸入流就可以讀出對應(yīng)的內(nèi)容。下面來看一些服務(wù)端與客戶端通信的例子:

      1、客戶端寫服務(wù)端讀

       服務(wù)端代碼 


Java代碼  


 public class Server { 
 public static void main(String args[]) throws IOException { 
 //為了簡單起見,所有的異常信息都往外拋 
 int port = 8899; 
 //定義一個ServerSocket監(jiān)聽在端口8899上 
 ServerSocket server = new ServerSocket(port); 
 //server嘗試接收其他Socket的連接請求,server的accept方法是阻塞式的 
 Socket socket = server.accept(); 
 //跟客戶端建立好連接之后,我們就可以獲取socket的InputStream,并從中讀取客戶端發(fā)過來的信息了。 
 Reader reader = new InputStreamReader(socket.getInputStream()); 
 char chars[] = new char[64]; 
 int len; 
 StringBuilder sb = new StringBuilder(); 
 while ((len=reader.read(chars)) != -1) { 
  sb.append(new String(chars, 0, len)); 
 } 
 System.out.println("from client: " + sb); 
 reader.close(); 
 socket.close(); 
 server.close(); 
 } 
 } 

本文題目:JavaSocket編程簡介_動力節(jié)點(diǎn)Java學(xué)院整理-創(chuàng)新互聯(lián)
瀏覽路徑:http://bm7419.com/article44/gipee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、ChatGPT、關(guān)鍵詞優(yōu)化、營銷型網(wǎng)站建設(shè)、全網(wǎng)營銷推廣服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)