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

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

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
主站蜘蛛池模板: 亚洲成在人线视频 | xxx88视频在线观看 | 爱情岛论坛亚洲一号路线 | 91精品国产高清久久久久久 | 91小视频在线观看免费版高清 | 水多多www视频在线观看高清 | 亚洲国产成人久久综合一区77 | 好男人资源在线观看免费的 | 日本动漫打扑克动画片樱花动漫 | 免费看美女被靠到爽的视频 | 精品一区二区三区免费视频 | 免费看日产一区二区三区 | 欧美交换乱理伦片120秒 | 免费一看一级毛片人 | 500福利第一巨人导航 | 国产新疆成人a一片在线观看 | 亚洲国产综合久久久无码色伦 | 欧美一区二区三区免费看 | 黄www片| 香港论理午夜电影网 | 村妇超级乱淫伦小说全集 | 日韩欧美亚洲一区二区综合 | 波多野结衣在线观看中文字幕 | 狠狠涩 | 精品国产91高清在线观看 | 国内体内she精视频免费 | 国产美女亚洲精品久久久综合 | 成年性生交大片免费看 | 亚洲www美色 | 不良研究所地址一 | 亚洲国产日韩欧美在线vip1区 | 美女福利视频午夜在线 | 欧美bbxx | 女烈受刑重口小说 | 精品一区二区三区在线播放 | 特级夫妻大片免费在线播放 | 视频在线观看高清免费 | 日本xxxx18vr69 | 欧洲破处 | 午夜想想爱 | 校园情射 |