zoukankan      html  css  js  c++  java
  • 网络编程

    1.网络通信要素

    2.IP

    3.端口号

    4.通信协议

    TCP : 打电话

    UDP : 发短信 , 发电报

    4.1 TCP

    public class TCPtest {
        //客户端发送消息给服务端 , 服务端将信息显示在控制台
        
        //客户端
        @Test
        public void client() {
            Socket socket = null;
            OutputStream outputStream = null;
            try {
                //获取服务端的socket
                InetAddress address = InetAddress.getByName("127.0.0.1");
                socket = new Socket(address, 8899);
                //通过socket 获取输出流 , 发送信息
                outputStream = socket.getOutputStream();
                outputStream.write("你好,我是客户端mm".getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    outputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        //服务端
        @Test
        public void server() {
            ServerSocket serverSocket = null;
            Socket socket = null;
            InputStream inputStream = null;
            ByteArrayOutputStream byteArrayOutputStream = null;
            try {
                //创建serverSocket
                serverSocket = new ServerSocket(8899);
                //接收客户端的socket
                socket = serverSocket.accept();
                //创建接受流
                inputStream = socket.getInputStream();
                //打印信息
                byteArrayOutputStream = new ByteArrayOutputStream();
                byte[] buffer = new byte[5];
                int len;
                while ((len = inputStream.read(buffer)) != -1) {
                    byteArrayOutputStream.write(buffer, 0, len);
                }
                System.out.println(byteArrayOutputStream.toString());
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    byteArrayOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    serverSocket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    4.2 UDP

    public class UDPtest {
        //测试用UDP协议 发送和 接收数据
    
        //发送端
        @Test
        public void sender()throws IOException {
            DatagramSocket datagramSocket = new DatagramSocket();
            String str = "我是UDP方式发送的数据!";
            InetAddress address = InetAddress.getByName("localhost");
            DatagramPacket packet = new DatagramPacket(str.getBytes(), 0, str.getBytes().length, address, 9090);
            //发送
            datagramSocket.send(packet);
            //关闭socket
            datagramSocket.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()));
            //关闭
            socket.close();
        }
    }

    5.URL

    //从Tomcat中下载图片
    
        @Test
        public void test()throws IOException {
            URL url = new URL("http://localhost:8080/examples/picture.jpg");
            //获取链接
            HttpURLConnection urlConnection =(HttpURLConnection) url.openConnection();
            urlConnection.connect();
            //获取输入 , 输出流
            InputStream inputStream = urlConnection.getInputStream();
            FileOutputStream fileOutputStream = new FileOutputStream("picture1.jpg");
            //传输数据
            byte[] buffer = new byte[5];
            int len;
            while ((len=inputStream.read(buffer))!=-1){
                fileOutputStream.write(buffer,0,len);
            }
            System.out.println("下载完成!");
            //关闭资源
            fileOutputStream.close();
            inputStream.close();
            urlConnection.disconnect();
        }
  • 相关阅读:
    linux如何给程序添加自启动
    nginx 反向代理apache服务器 配置java与PHP共存环境
    eclipse配置Js环境spket
    Linux下实现秒级定时任务的两种方案
    Linux时间戳和标准时间的互转
    thinkphp与php共享session
    安装PHP sphinx扩展 sphinx-1.1.0/sphinx.c:105:2: error: too few arguments 错误
    MySQLCouldn't find MySQL manager
    PHP 使用header函数设置HTTP头的示例方法 表头 (xlsx下载)
    JAVA正则表达式 Pattern和Matcher
  • 原文地址:https://www.cnblogs.com/Anonymity-zhang/p/14451176.html
Copyright © 2011-2022 走看看