JAVA基础之下载,socket实现网络聊天

发布于:2024-05-12 ⋅ 阅读:(35) ⋅ 点赞:(0)

目录

一、如何利用正则表达式找到img标签 compile编译编制

二、下载图片的方法

三、socket实现网络聊天


1.inputStreamReader  字节的读取流--->字符的读取流
2.outputStreamWriter 字节的写入流--->字符的写入流

一、如何利用正则表达式找到img标签 compile编译编制

      int c=0;
        Pattern p = Pattern.compile("<img\\ssrc=\"([^>\"]+)\"\\s(width=\"\\d+\"\\sheight=\"\\d+\"\\s)?/>");//里面写上正则
        Matcher m = p.matcher(sb);//匹配谁
        while(m.find()){
            c++;
            String s = m.group(1);
            myload("file:///E:/1-0809/S1阶段/6-html/site/"+s);
        }

二、下载图片的方法

 public static void myload(String str){
        try {
            URL url = new URL(str);
            InputStream is = url.openStream();
            String s = str.substring(str.lastIndexOf("/")+1);
            File file = new File("f:\\图片\\aa\\"+s);
            FileOutputStream fos = new FileOutputStream(file);
            BufferedOutputStream bos = new BufferedOutputStream(fos);
            int n = -1;
            while((n=is.read())!=-1){
                bos.write(n);
                bos.flush();
            }
            bos.close();
            fos.close();
            is.close();

        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }

三、socket实现网络聊天

  * 1.启动服务器
  *      1.1等待客户端上线
 * 2.客户端连接服务器
 * 3.客户端给服务器发送信息(写)
 * 4.服务器接收客户端的信息(读)
 * 5.服务器给客户端回复信息
 * 6.客户端接收服务器的信息
  * 7.关闭所有连接

1.启动服务器
    ServerSocket ss = new ServerSocket(8899);
1.1等待客户端上线
    System.out.println("服务器已启动,等待客户端上线。。。。。。");
    Socket sk = ss.accept();
    System.out.println("客户端已经上线,主机名为:"+sk.getInetAddress().getHostName());
2.客户端连接服务器
    Socket sk = new Socket(InetAddress.getByName("127.0.0.1"), 8899);
    System.out.println("客户端已上线~~~~~~");

3.客户端给服务器发送信息
        //获取网络的字节写入流
        OutputStream os = sk.getOutputStream();
        //转为字符的写入流
        OutputStreamWriter osw = new OutputStreamWriter(os);
        //包装
        BufferedWriter bw = new BufferedWriter(osw);
        //由用户自己输入内容
        Scanner mys = new Scanner(System.in);
        System.out.println("请输入你要发送的内容:");
        String sa = mys.next();
        //写入网络中
        bw.write(sa);
        //换行&&刷新
        bw.newLine();
        bw.flush();

4.服务器接收客户端的信息
        //获取网络的读取流
        InputStream is = sk.getInputStream();
        //转换为字符的读取流
        InputStreamReader isr = new InputStreamReader(is);
        //包装
        BufferedReader br = new BufferedReader(isr);
        //读取一行
        String sa = br.readLine();
        //打印客户端发送过来的信息
        System.out.println("收到客户端的信息:"+sa);


网站公告

今日签到

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