JAVA--網路編程

來源:互聯網
上載者:User

標籤:

JAVA--網路編程  每次一提到網路就感覺瞬間變得高大上了,可是網路編程真的有那麼神秘嗎?接下來讓我們一起來複習一下吧。  很多人把網站編程等價於網路編程,在這裡給大家糾正一下,網路編程!=網站編程,那麼何為網路編程呢?網路編程時基於TCP和UDP的一種編程,例如:遊戲類、社交類產品。對於TCP通訊,它是一種有問有答的一種編程,而UDP是一種類似於對講機的一種通訊,兩者各有優點,TCP相對UDP更安全,UDP相對TCP傳輸更快速,在遊戲開發中經常使用UDP通訊。  對於他們之間的深層區別,我就不是十分清楚了,如果你知道,請勞煩交流一下。下面我們以實際例子,簡單介紹一下網路編程:一、基於TCP的簡單網路連接:  伺服器端代碼:public class TestSeriver {    /**伺服器端     * @param args     */    public static void main(String[] args) {        try {            //我們的機器上一個有65526個連接埠,在我們設定連接埠時,盡量選擇124以後的連接埠,因為124之前的連接埠已經被特定的程式設定,例如:80 :瀏覽器地址連接埠            ServerSocket ss = new ServerSocket(888);//這裡的888:是我們為了方便用戶端的串連設定的連接埠號碼            Socket s = ss.accept();//用來接收用戶端的的串連,注意這個方法是阻塞式的,也就是說如果沒有用戶端串連,程式將會停留在這個位置            System.out.println("A client connect!");        } catch (IOException e) {            e.printStackTrace();        }    }}  用戶端代碼:public class TestClient {    /**用戶端     * @param args     */    public static void main(String[] args) {        try {            Socket s = new Socket("127.0.0.1",888);//在這裡說明一點,"127.0.0.1":使我們的主機號,888:是我們需要串連的連接埠號碼        } catch (UnknownHostException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }}  在這裡說明一點,這種伺服器--用戶端串連,一次只能串連一個用戶端,並且沒有任何資料通訊,那如何?多用戶端串連,並完成通訊呢?接下來就給大家介紹一種方式:  伺服器端代碼:public class TestSeriver1 {    /**伺服器端     * @param args     */    public static void main(String[] args) {        try {            ServerSocket ss = new ServerSocket(999);            while(true){                Socket s = ss.accept();                System.out.println("A client connect!");                InputStream is = s.getInputStream();                DataInputStream dis = new DataInputStream(is);                System.out.println(dis.readUTF());//這裡的readUTF()方法也是阻塞式的,為了讓看到這個效果我在用戶端輸入的地方添加了一個停頓,已經標註            }        } catch (IOException e) {            e.printStackTrace();        }    }}  用戶端代碼:public class TestClient1 {    /**用戶端     * @param args     */    public static void main(String[] args) {        try {            Socket s = new Socket("127.0.0.1", 999);            OutputStream os = s.getOutputStream();            DataOutputStream dos = new DataOutputStream(os);            Thread.sleep(3000);//設定停頓三秒鐘,關於這個我線上程的部落格裡有說明            dos.writeUTF("Hello Server!");        } catch (UnknownHostException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }catch (InterruptedException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}  這其中添加了一下關於JAVA--io流方面的知識,如果你感覺看不懂,我在昨天的部落格中對JAVA--io流做了詳細的介紹,你可以先去複習一下,在來學習網路。  聲明:以上內容如有不當,請留言,謝謝。
轉載自:http://www.cnblogs.com/AndroidJotting/p/3939144.html

 

JAVA--網路編程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.