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

    InetAddress

    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    public class test01 {
        /**
         * 端口号与IP地址的组合得出一个网络套接字:Socket
         *
         * 1. 本地回路地址:127.0.0.1 对应着:localhost
         * 2. InetAddress的两个实例化方法:getByName(String host)、getLocalHost()
         * 3. InetAddress的两个常用方法:getHostName()、getHostAddress()
         * @param args
         */
        public static void main(String[] args) throws UnknownHostException {
    
            InetAddress inet1 = InetAddress.getByName("192.168.10.23");
            System.out.println(inet1);
    
            InetAddress inet2 = InetAddress.getByName("www.baidu.com");
            System.out.println(inet2);
    
            InetAddress inet3 = InetAddress.getByName("127.0.0.1");
            System.out.println(inet3);
    
            InetAddress inet4 = InetAddress.getLocalHost();
            System.out.println(inet4);
    
            //getHostName()
            System.out.println(inet2.getHostName());
            //getHostAddress()
            System.out.println(inet2.getHostAddress());
    
        }
    }
    
    

    TCP

    1.客户端发送内容给服务端,服务端将内容打印到控制台上

    import org.junit.Test;
    
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.InetAddress;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class test02 {    
    
        //客户端
        @Test
        public void client() throws IOException {
            //1.创建一个Socket对象,指明服务器端的ip和端口号
            InetAddress inet = InetAddress.getByName("127.0.0.1");
            Socket socket = new Socket(inet, 8899);
    
            //2.获取一个输出流,用于传输数据
            OutputStream os = socket.getOutputStream();
            os.write("你好,我是客户端".getBytes());
    
            //3.关闭资源
            os.close();
            socket.close();
        }
    
        //服务器
        @Test
        public void server() throws IOException {
            //1.创建服务器端的ServerSocket,指明自己的端口号
            ServerSocket ss = new ServerSocket(8899);
    
            //2.调用accept()表示接收来自客户端的socket
            Socket socket = ss.accept();
    
            //3.获取输入流
            InputStream is = socket.getInputStream();
    
    
            //4.读取数据
            ByteArrayOutputStream 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());
    
            //5.关闭资源
            baos.close();
            is.close();
            socket.close();
            ss.close();
        }
    }
    
    

    2.客户端发送文件给服务端,服务端将文件保存在本地

    import com.sun.security.ntlm.Server;
    import org.junit.Test;
    
    import java.io.*;
    import java.net.InetAddress;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    public class test03 {   
    
        //客户端
        @Test
        public void client() throws IOException {
            //1.
            Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9090);
    
            //2.
            OutputStream os = socket.getOutputStream();
    
            FileInputStream fis = new FileInputStream(new File("hello.jpg"));
    
            //3.
            byte[] buffer = new byte[1024];
            int len;
            while((len = fis.read(buffer)) != -1){
                os.write(buffer, 0, len);
            }
    
            //4.
            fis.close();
            os.close();
            socket.close();
        }
    
        //服务器
        @Test
        public void server() throws IOException {
            //1.
            ServerSocket ss = new ServerSocket();
    
            //2.
            Socket socket = ss.accept();
    
            //3.
            InputStream is = socket.getInputStream();
    
            FileOutputStream fos = new FileOutputStream(new File("feifei.jpg"));
    
            //4.
            byte[] buffer = new byte[1024];
            int len;
            while((len = is.read(buffer)) != -1){
                fos.write(buffer, 0, len);
            }
    
            //5.
            fos.close();
            is.close();
            socket.close();
            ss.close();
        }
    }
    
    

    3.从客户端发送文件给服务端,服务端保存到本地。并返回“发送成功”给 客户端。并关闭相应的连接

    import org.junit.Test;
    
    import java.io.*;
    import java.net.InetAddress;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class test04 {    
    
        //客户端
        @Test
        public void client() throws IOException {
            //1.
            Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9090);
    
            //2.
            OutputStream os = socket.getOutputStream();
    
            FileInputStream fis = new FileInputStream(new File("hello.jpg"));
    
            //3.
            byte[] buffer = new byte[1024];
            int len;
            while((len = fis.read(buffer)) != -1){
                os.write(buffer, 0, len);
            }
    
            //图片传完了,不再发了
            socket.shutdownOutput();
    
            //4.接收来自服务器端的数据,并显示到控制台上
            InputStream is = socket.getInputStream();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            byte[] buffer2 = new byte[20];
            int len2;
            while((len2 = is.read(buffer2)) != -1){
                baos.write(buffer2, 0, len2);
            }
            System.out.println(baos.toString());
    
            //5.
            fis.close();
            os.close();
            socket.close();
            is.close();
            baos.close();
        }
    
        //服务器
        @Test
        public void server() throws IOException {
            //1.
            ServerSocket ss = new ServerSocket();
    
            //2.
            Socket socket = ss.accept();
    
            //3.
            InputStream is = socket.getInputStream();
    
            FileOutputStream fos = new FileOutputStream(new File("feifei.jpg"));
    
            //4.
            byte[] buffer = new byte[1024];
            int len;
            while((len = is.read(buffer)) != -1){
                fos.write(buffer, 0, len);
            }
    
            //5.服务器端给予客户反馈
            OutputStream os = socket.getOutputStream();
            os.write("我已经收到消息了".getBytes());
    
            //6.
            fos.close();
            is.close();
            socket.close();
            ss.close();
            os.close();
        }
    }
    
    

    UDP

    import org.junit.Test;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    import java.net.SocketException;
    
    public class test05 {
        //发送端
        @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()));
    
            socket.close();
        }
    }
    
    

    URL

    import org.junit.Test;
    
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLConnection;
    
    public class test07 {
        @Test
        public void testURL() throws IOException {
    
            URL url = new URL("http://localhost:8080/examples/hello.jpg");
    
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    
            urlConnection.connect();
    
            InputStream is = urlConnection.getInputStream();
            FileOutputStream fos = new FileOutputStream("hello2.jpg");
    
            byte[] buffer = new byte[1024];
            int len;
            while((len = is.read(buffer)) != -1){
                fos.write(buffer, 0, len);
            }
    
            //关闭资源
            is.close();
            fos.close();
            urlConnection.disconnect();
        }
    }
    
    
  • 相关阅读:
    SqlServer Function 实例
    技术清单
    SQLSERVER 链接服务器执行存储过程
    SQLSERVER 链接服务器
    Oracle 新手语法记录
    MarkDown 语法备份
    C# WebAPI小记
    Rabbit MQ 学习 (二)
    Rabbit MQ 学习 (一)Window安装Erlang环境
    [vue2,nodejs,echarts,json]调查问卷
  • 原文地址:https://www.cnblogs.com/xiaoran991/p/12543899.html
Copyright © 2011-2022 走看看