栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

网络编程java

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

网络编程java

在简单的网络编程中,需要服务器与客户端的连接

一.TCP的简单使用(可信但效率低)

①自定义客户端与服务器,进行图片的复制

客户端

public void client()
     {
          OutputStream os = null;
          FileInputStream file1 = null;
          InputStream is = null;
          ByteArrayOutputStream bo = null;
          try {
               //ip地址
               Socket socket = new Socket(InetAddress.getByName("127.0.0.1"),9090);

               os = socket.getOutputStream();

               file1 = new FileInputStream(new File("OIP1-C.jpg"));
               //读取图片的信息
               byte[] buffer = new byte[100];
               int lent;
               while ((lent = file1.read(buffer)) != -1)
               {
                    os.write(buffer,0,lent);
               }
               //告诉服务器传输的数据结束
               socket.shutdownInput();
               //读入来自服务器的数据
               is = socket.getInputStream();
               bo = new ByteArrayOutputStream();
               byte[] arr = new byte[100];
               int len;
               while ((len = is.read(arr) ) != -1)
               {
                    bo.write(arr,0,len);
               }
               System.out.println(bo.toString());
          } catch (IOException e) {
               e.printStackTrace();
          } finally {
               //流的关闭
               if (os != null) {
                    try {
                         os.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
               if (file1 != null) {
                    try {
                         file1.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
               if (is != null) {
                    try {
                         is.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
               if (bo != null) {
                    try {
                         bo.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
          }
          
     }

服务器

public void server()
     {
          ServerSocket ss = null;
          Socket accept = null;
          InputStream is = null;
          FileOutputStream file2 = null;
          OutputStream outputStream = null;
          try {
               //自己的端口值
               ss = new ServerSocket(9090);
               accept = ss.accept();
               is = accept.getInputStream();
               
               file2 = new FileOutputStream("`OIP12-C.jpg");
               //复制图片的操作
               byte[] buffer = new byte[100];
               int lent;
               while ((lent = is.read()) != -1)
               {
                    file2.write(buffer,0,lent);
               }
               //传给客户端的信息
               outputStream = accept.getOutputStream();
               outputStream.write("已收到".getBytes(StandardCharsets.UTF_8));
          } catch (IOException e) {
               e.printStackTrace();
          } finally {
               while (ss != null) {
                    try {
                         ss.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
               while (accept != null) {
                    try {
                         accept.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
               while (is != null) {
                    try {
                         is.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
               while (file2 != null) {
                    try {
                         file2.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
               while (outputStream != null) {
                    try {
                         outputStream.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
          }
     }

②使用浏览器与Tomcat服务器的连接

首先需要配置tomcat,在控制台输入catalina run后在浏览器输入    http://localhost:8080

可随意在一个地方创建一个txt,然后在浏览器输入http://localhost:8080/1/hello.txt(举例)

便可在网页看到自己在文本输入的内容了

2.UDP(不可信但效率高)

发送

public void sender()
     {
          DatagramSocket socket = null;
          try {
               socket = new DatagramSocket();

               String arr = "我传输了信息过来";
               byte[] data = arr.getBytes(StandardCharsets.UTF_8);
               InetAddress ient = InetAddress.getLocalHost();
               DatagramPacket packet = new DatagramPacket(data,0,data.length,ient,8080);
               //将信息打包并发送出去
               socket.send(packet);
          } catch (IOException e) {
               e.printStackTrace();
          } finally {
               if(socket != null)
                    socket.close();
          }
     }

接收

public void reader() throws Exception
     {
          //服务器的端口
          DatagramSocket data = new DatagramSocket(8080);
          byte[] bytes = new byte[100];
          DatagramPacket packet = new DatagramPacket(bytes,0,bytes.length);
          data.receive(packet);
          System.out.println(new String(packet.getData(),0,packet.getLength()));
     }

③URL(较为常用)实现tomcat服务端数据下载

public static void main(String[] args) {
          HttpURLConnection urlConnection = null;
          InputStream inputStream = null;
          FileOutputStream fileOutputStream = null;
          try {
               URL url = new URL("http://localhost:8080/1/bea.jpg");
               urlConnection = (HttpURLConnection) url.openConnection();
               urlConnection.connect();
               inputStream = urlConnection.getInputStream();
               fileOutputStream = new FileOutputStream("bea1,jpg");
               byte[] bytes = new byte[1000];
               int len;
               while ((len = inputStream.read()) != -1)
               {
                    fileOutputStream.write(bytes,0,len);
               }
          } catch (IOException e) {
               e.printStackTrace();
          } finally {
               if (inputStream != null) {
                    try {
                         inputStream.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
               if (fileOutputStream != null) {
                    try {
                         fileOutputStream.close();
                    } catch (IOException e) {
                         e.printStackTrace();
                    }
               }
               if (urlConnection != null)
                    urlConnection.disconnect();
               
          }
         
     }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771228.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号