91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

12.5-全棧Java筆記:Java網絡編程(三)

發布時間:2020-06-30 14:36:51 來源:網絡 閱讀:397 作者:全棧Java 欄目:建站服務器

上節回顧:在學習了Socket在建立客戶端和服務器單項通訊中,分別創建獨立的Socket,并通過Socket的屬性。

那么如何將兩個Socket進行連接,從而達到客戶端和服務器之間建立輸入輸出流進行通信呢?在上節中我們已經講到,TCP/IP套接字是最可靠的雙向流協議,使用TCP/IP可以發送任意數量的數據。如果發送方和接收方計算機確定好端口,他們就可以通信了,其中的端口用套接字表示。

【示例1】客戶端與服務器端雙向交流的Socket之服務器端

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.net.ServerSocket;

import java.net.Socket;

public class Server {

    public static void main(String[] args) throws   Exception {

       ServerSocket server=new ServerSocket(8888);

        Socket socket=server.accept();

       BufferedReader in=new BufferedReader(new   InputStreamReader(socket.getInputStream()));

       BufferedWriter out=new BufferedWriter(new   OutputStreamWriter(socket.getOutputStream()));

       BufferedReader br = new BufferedReader(new   InputStreamReader(System.in));

       while(true){

           String str=in.readLine();

           System.out.println("客戶端說:"+str);

           String str2 = "";

           str2 = br.readLine();     //讀到\n為止,因此一定要輸入換行符!

           out.write(str2+"\n");

           out.flush();

           if(str.equals("end"))

              break;

           }

          

       in.close();

       out.close();

       socket.close();

    }

}

【示例2】客戶端與服務器端雙向交流的Socket之客戶端

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.net.InetAddress;

import java.net.Socket;

import java.net.UnknownHostException;

 

public class Client {

    static Socket server;

 

    public static void main(String[] args) {

       try {

           server = new Socket(InetAddress.getLocalHost(),   8888);

           BufferedReader in = new BufferedReader(new   InputStreamReader(

                  server.getInputStream()));

           BufferedWriter out = new BufferedWriter(new   OutputStreamWriter(

                  server.getOutputStream()));

           BufferedReader wt = new BufferedReader(new   InputStreamReader(

                  System.in));

 

           while (true) {

              String str = wt.readLine();

              out.write(str + "\n");

              out.flush();

              if (str.equals("end")) {

                  break;

              }

              System.out.println("服務器發說:" +   in.readLine());

           }

 

           out.close();

           in.close();

           wt.close();

           server.close();

 

       } catch (UnknownHostException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

 

    }

}

學習以上程序后,會發現我們必須按照安排好的順序,服務器和客戶端一問一答!不夠靈活!!那么如何用多線程來實現更加靈活的雙向通訊呢?下節我們繼續~





「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發經驗,曾在神州數碼、航天院某所研發中心從事軟件設計及研發工作,從小白逐漸做到工程師、高級工程師、架構師。精通Java平臺軟件開發,精通JAVAEE,熟悉各種流行開發框架。


 筆記包含從淺入深的六大部分:

 A-Java入門階段

 B-數據庫從入門到精通

 C-手刃移動前端和Web前端

 D-J2EE從了解到實戰

 E-Java高級框架精解

 F-Linux和Hadoop 




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

卢氏县| 尤溪县| 镇康县| 安远县| 寻甸| 视频| 逊克县| 汝阳县| 闻喜县| 台前县| 永安市| 怀安县| 揭阳市| 洞头县| 武川县| 英德市| 乐亭县| 南城县| 千阳县| 襄汾县| 永城市| 遵义县| 准格尔旗| 乌拉特中旗| 九台市| 万载县| 苍溪县| 昌都县| 兴义市| 宁南县| 大渡口区| 师宗县| 津市市| 平江县| 苏州市| 舟山市| 西乌| 平塘县| 台东市| 仁化县| 获嘉县|