《从零开始的Java世界》11网络编程

发布于:2024-04-25 ⋅ 阅读:(24) ⋅ 点赞:(0)

《从零开始的Java世界》系列主要讲解Javase部分,从最简单的程序设计到面向对象编程,再到异常处理、常用API的使用,最后到注解、反射,涵盖Java基础所需的所有知识点。学习者应该从学会如何使用,到知道其实现原理全方位式地学习,才能为以后框架的学习打下良好的基础。

目录

1.网络编程概述

2.InetAddress类

3.TCP与UDP协议

3.1TCP

3.2UDP

4.Socket相关类API

4.1通信模型

4.2ServerSocket类

4.2.1Socket类


1.网络编程概述

2.InetAddress类

@Test
public void test() throws UnknownHostException {
    //获取IP地址对象实例
    InetAddress inet1 = InetAddress.getByName("192.168.0.1");
    System.out.println(inet1);
    //获取域名对象实例
    InetAddress inet2 = InetAddress.getByName("www.baidu.com");
    System.out.println(inet2);
    //获取本机IP地址实例
    InetAddress inet3 = InetAddress.getLocalHost();
    System.out.println(inet3);
}

3.TCP与UDP协议

3.1TCP

3.2UDP

4.Socket相关类API

4.1通信模型

4.2ServerSocket类

4.2.1Socket类

public class TCPTest {
    //模拟网络传输的方式 复制一张本地图片
    //客户端
    @Test
    public void client() throws IOException {
        //1.创建Socket
        InetAddress inetAddress = InetAddress.getByName("127.0.0.1");
        int port = 9090;
        Socket socket = new Socket(inetAddress,9090);
        //2.创建File实例
        File file = new File("copy_sdz.jpg");
        FileInputStream fis = new FileInputStream(file);
        //3.通过Socket获取输出流
        OutputStream os = socket.getOutputStream();
        //读写数据
        byte[] buffer = new byte[1024];
        int len;
        while((len = fis.read(buffer)) !=-1 ){
            os.write(buffer,0,len);
        }
        System.out.println("数据发送完毕");
        //4.关闭相关流
        os.close();
        fis.close();
        socket.close();
    }

    //服务端
    @Test
    public void server() throws  IOException{
        //1.创建ServerSocket
        ServerSocket serverSocket = new ServerSocket(9090);
        //2.接收来自客户端的socket
        Socket socket = serverSocket.accept();
        //3.通过socket获取一个输入流
        InputStream is = socket.getInputStream();
        //4.创建File类实例
        File file = new File("TCP_copy.jpg");
        FileOutputStream fos = new FileOutputStream(file);
        //5.读写过程
        byte[] buffer = new byte[1024];
        int len;
        while((len = is.read(buffer)) != -1){
            fos.write(buffer,0,len);
        }
        System.out.println("数据接收完毕");
        //6.关闭相关流
        fos.close();
        is.close();
        socket.close();
        serverSocket.close();
    }

}

内容来源于尚硅谷javase课程的ppt,仅作为学习笔记参考

 


网站公告

今日签到

点亮在社区的每一天
去签到