一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java網絡編程之入門篇

Java網絡編程之入門篇

2021-12-29 13:07威斯布魯克.猩猩 Java教程

這篇文章主要介紹了Java網絡編程入門,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

 

一、網絡基礎

Java網絡編程之入門篇

Java網絡編程之入門篇Java網絡編程之入門篇Java網絡編程之入門篇

 

二、網絡協議

Java網絡編程之入門篇

Java網絡編程之入門篇

Java網絡編程之入門篇

 實現TCP的網絡編程
 例子1:客戶端發送信息給服務端,服務端將數據顯示在控制臺上
public class TCPTest1 {
    //客戶端
    @Test
    public void client() {
        Socket socket = null;
        OutputStream os = null;
        try {
            //1.創建Socket對象,指明服務器端的ip和端口號
            InetAddress inet = InetAddress.getByName("127.0.0.1");
            socket = new Socket(inet, 8899);
            //2.獲取一個輸出流,用于輸出數據
            os = socket.getOutputStream();
            //3.寫出數據的操作
            os.write("你好,我是客戶端mm".getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //4.資源的關閉
            if(os != null){
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
 
    }
    //服務端
    @Test
    public void server(){
        ServerSocket ss = null;
        Socket socket = null;
        InputStream is = null;
        ByteArrayOutputStream baos = null;
        try {
            //1.創建服務器的ServerSocket,指明自己的端口號
            ss = new ServerSocket(8899);
            //2.調用accept()表示接收來自于客戶端的socket
            socket = ss.accept();
            //3.獲取輸入流
            is = socket.getInputStream();
            //不建議這樣寫,可能會有亂碼
//        byte[] buffer = new byte[1024];
//        int len;
//        while((len = is.read(buffer)) != -1){
//            String str = new String(buffer,0,len);
//            System.out.println(str);
//        }
            //4.讀取輸入流中的數據
            baos = new ByteArrayOutputStream();
            byte[] buffer = new byte[5];
            int len;
            while((len = is.read(buffer)) != -1){
                baos.write(buffer,0,len);
            }
            System.out.println(baos.toString());
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //5.關閉資源
            if(baos != null){
                try {
                    baos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(is != null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(socket != null){
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(ss != null){
                try {
                    ss.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
 實現TCP的網絡編程
 例題2:客戶端發送文件給服務端,服務端將文件保存在本地。
public class TCPTest2 {
    //這里異常處理的方式應該使用try-catch-finally
    @Test
    public void client() throws IOException {
        Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9090);
        OutputStream os = socket.getOutputStream();
        FileInputStream fis = new FileInputStream(new File("beauty.jpg"));
        byte[] buffer = new byte[1024];
        int len;
        while((len = fis.read(buffer)) != -1){
            os.write(buffer,0,len);
        }
        fis.close();
        os.close();
        socket.close();
    }
    //這里異常處理的方式應該使用try-catch-finally
    @Test
    public void server() throws IOException {
        ServerSocket ss = new ServerSocket(9090);
        Socket socket = ss.accept();
        InputStream is = socket.getInputStream();
        FileOutputStream fos = new FileOutputStream(new File("beauty1.jpg"));
        byte[] buffer = new byte[1024];
        int len;
        while((len = is.read(buffer)) != -1){
            fos.write(buffer,0,len);
        }
        fos.close();
        is.close();
        socket.close();
        ss.close();
    }
}
 實現TCP的網絡編程
 例題3:從客戶端發送文件給服務端,服務端保存到本地,并返回"發送成功"給客戶端。并關閉相應的連接
 
public class TCPTest3 {
    @Test
    public void client() throws IOException {
        Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9090);
        OutputStream os = socket.getOutputStream();
        FileInputStream fis = new FileInputStream(new File("beauty.jpg"));
        byte[] buffer = new byte[1024];
        int len;
        while((len = fis.read(buffer)) != -1){
            os.write(buffer,0,len);
        }
        //服務區端給予客戶端反饋
        OutputStream os1 = socket.getOutputStream();
        os.write("你好,美女,照片我以收到,非常漂亮!".getBytes());
        fis.close();
        os.close();
        socket.close();
        os1.close();
 
    }
    //這里異常處理的方式應該使用try-catch-finally
    @Test
    public void server() throws IOException {
        ServerSocket ss = new ServerSocket(9090);
        Socket socket = ss.accept();
        InputStream is = socket.getInputStream();
        FileOutputStream fos = new FileOutputStream(new File("beauty2.jpg"));
        byte[] buffer = new byte[1024];
        int len;
        while((len = is.read(buffer)) != -1){
            fos.write(buffer,0,len);
        }
        //接受來自于服務器端的數據,并顯示到控制臺上
        InputStream is1 = socket.getInputStream();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] bufferr = new byte[20];
        int len1;
        while((len1 = is1.read(buffer)) != -1){
            baos.write(buffer,0,len1);
        }
        System.out.println(baos.toString());
        fos.close();
        is.close();
        socket.close();
        ss.close();
        baos.close();
    }
}

Java網絡編程之入門篇

UDP協議的網絡編程
public class UDPTest {
    @Test
    public void sender() throws IOException {
        DatagramSocket socket = new DatagramSocket();
 
        String str = "我是UDP方式發送的導彈";
        byte[] data = str.getBytes();
        InetAddress inet = InetAddress.getLocalHost();
        DatagramPacket packet = new DatagramPacket(data,0,data.length,inet,9090);
        socket.send(packet);
        socket.close();
    }
    @Test
    public void receiver() throws IOException {
        DatagramSocket socket = new DatagramSocket(9090);
        byte[] buffer = new byte[100];
        DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length);
        socket.receive(packet);
        System.out.println(new String(packet.getData(),0,packet.getLength()));
    }

Java網絡編程之入門篇

Java網絡編程之入門篇

 

URL類

Java網絡編程之入門篇Java網絡編程之入門篇Java網絡編程之入門篇

  URL網絡編程
  1.URL:統一資源定位符,對應著互聯網的某一資源地址
  2.格式:
    http://localhost:8080/examples/beauty.jpg?username=Tom
    協議   主機名     端口號    資源地址       參數列表
 
public class URLTest {
    public static void main(String[] args) {
        try {
            URL url = new URL("http://localhost:8080/examples/beauty.jpg?username=Tom");
//            public String getProtocol()       獲取該URL的協議名
            System.out.println(url.getProtocol());// http
//            public String getHost()           獲取該URL的主機名
            System.out.println(url.getHost());//localhost
//            public String getPort()           獲取該URL的端口號
            System.out.println(url.getPort());// 8080
//            public String getPath()           獲取該URL的文件路徑
            System.out.println(url.getPath());//examples/beauty.jpg
//            public String getFile()           獲取該URL的文件名
            System.out.println(url.getFile());//examples/beauty.jpg?username=Tom
//            public String getQuery()          獲取該URL的查詢名
            System.out.println(url.getQuery());//username=Tom
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }
}

以上就是Java網絡編程之入門篇的詳細內容,更多關于Java網絡編程的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/weixin_49329785/article/details/119979545

延伸 · 閱讀

精彩推薦
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
主站蜘蛛池模板: 青青草原国产视频 | 国语自产自拍秒拍在线视频 | 亚洲 欧美 国产 在线 日韩 | 91视频完整版 | 国产亚洲综合成人91精品 | 好姑娘在线完整版视频 | 色综合91久久精品中文字幕 | 爱情岛论坛亚洲自拍 | 4hu永久地域网名入口 | 校园情射 | 亚洲AV午夜福利精品香蕉麻豆 | 国内精品久久久久久久 | 农夫69小说恋老妇小说 | 精品视频入口 | 91免费在线| 日本人欧美xx | 日韩免费一区 | 国产资源免费观看 | bl双性受乖调教改造身体 | 亚洲男人的天堂成人 | 秀逼逼| 欧美一级高清片免费一级 | eeuss免费快捷 | 朝鲜美女免费一级毛片 | 青草香蕉精品视频在线观看 | 女同69式互添在线观看免费 | 亚洲精品久久久打桩机 | 精品性影院一区二区三区内射 | 青青青国产视频 | 99热国产这里只有精品99 | 第一次处破女18分钟 | 国产一区二区三区福利 | 日韩毛片在线视频 | 91女神在线观看 | 日韩欧美一区二区三区视频 | xx18-19xxxxhd| 久久er国产免费精品 | a级亚洲片精品久久久久久久 | 三级全黄的视频 | 息与子中文字幕bd | 玩乳h文奶水和尚 |