国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

JAVA--網(wǎng)絡編程

2019-11-14 21:00:53
字體:
來源:轉載
供稿:網(wǎng)友
java--網(wǎng)絡編程

  每次一提到網(wǎng)絡就感覺瞬間變得高大上了,可是網(wǎng)絡編程真的有那么神秘嗎?接下來讓我們一起來復習一下吧。

  很多人把網(wǎng)站編程等價于網(wǎng)絡編程,在這里給大家糾正一下,網(wǎng)絡編程!=網(wǎng)站編程,那么何為網(wǎng)絡編程呢?網(wǎng)絡編程時基于TCP和UDP的一種編程,例如:游戲類、社交類產(chǎn)品。對于TCP通訊,它是一種有問有答的一種編程,而UDP是一種類似于對講機的一種通訊,兩者各有優(yōu)點,TCP相對UDP更安全,UDP相對TCP傳輸更快速,在游戲開發(fā)中經(jīng)常使用UDP通訊。

  對于他們之間的深層區(qū)別,我就不是十分清楚了,如果你知道,請勞煩交流一下。

下面我們以實際例子,簡單介紹一下網(wǎng)絡編程:

一、基于TCP的簡單網(wǎng)絡連接:

  服務器端代碼:

public class TestSeriver {    /**服務器端     * @param args     */    public static void main(String[] args) {        try {            //我們的機器上一個有65526個端口,在我們設置端口時,盡量選擇124以后的端口,因為124之前的端口已經(jīng)被特定的程序設置,例如:80 :瀏覽器地址端口            ServerSocket ss = new ServerSocket(888);//這里的888:是我們?yōu)榱朔奖憧蛻舳说倪B接設置的端口號            Socket s = ss.accept();//用來接收客戶端的的連接,注意這個方法是阻塞式的,也就是說如果沒有客戶端連接,程序?qū)A粼谶@個位置            System.out.

  客戶端代碼:

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();        }    }}

  在這里說明一點,這種服務器--客戶端連接,一次只能連接一個客戶端,并且沒有任何數(shù)據(jù)通信,那如何實現(xiàn)多客戶端連接,并完成通信呢?接下來就給大家介紹一種方式:

  服務器端代碼:

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()方法也是阻塞式的,為了讓看到這個效果我在客戶端輸入的地方添加了一個停頓,已經(jīng)標注            }        } 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流做了詳細的介紹,你可以先去復習一下,在來學習網(wǎng)絡。

  聲明:以上內(nèi)容如有不當,請留言,謝謝。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丹江口市| 化州市| 阿拉善盟| 沭阳县| 通许县| 伊金霍洛旗| 安化县| 南木林县| 高安市| 德江县| 丘北县| 蒲江县| 蓬安县| 湘乡市| 蛟河市| 清河县| 白银市| 长垣县| 绩溪县| 普陀区| 油尖旺区| 梁平县| 南皮县| 新余市| 叙永县| 威海市| 平舆县| 织金县| 永川市| 阳江市| 正宁县| 太和县| 屏南县| 准格尔旗| 娱乐| 林州市| 寿阳县| 镇江市| 洮南市| 五华县| 遂平县|