Java 网络编程相关

Java 网络编程相关,第1张

Java 网络编程相关

目录

IP(InetAddress)

端口(InetSocketAddress)

URL

传输协议

UDP

TCP

爬虫基本原理">网络编程应用-->爬虫基本原理


IP(InetAddress)
package net;

import java.net.InetAddress;


public class IpTest {

    public static void main(String[] args) throws Exception {

        //使用getLocalHost获取本机的InetAddress对象
        InetAddress address = InetAddress.getLocalHost();
        System.out.println(address.getHostAddress());
        System.out.println(address.getHostName());

        //根据指定的域名获取相应的InetAddress对象
        address = InetAddress.getByName("www.baidu.com");
        System.out.println(address.getHostAddress());
        System.out.println(address.getHostName());

        //根据指定IP获取相应的InetAddress对象
        address = InetAddress.getByName("127.0.0.1");
        System.out.println(address.getHostAddress());
        System.out.println(address.getHostName());
        
    }
}
端口(InetSocketAddress)
package net;

import java.net.InetSocketAddress;


public class PortTest {

    public static void main(String[] args) {
        InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8080);
        InetSocketAddress socketAddress2 = new InetSocketAddress("localhost", 8080);
        System.out.println(socketAddress.getHostName());
        System.out.println(socketAddress.getAddress());
        System.out.println(socketAddress2.getHostName());
        System.out.println(socketAddress2.getAddress());

    }
}
URL
package net;

import java.net.MalformedURLException;
import java.net.URL;


public class UrlTest {

    public static void main(String[] args) throws MalformedURLException {
        URL url = new URL("https://www.baidu.com/s?wd=%E7%99%BE%E5%BA%A6#a");

        System.out.println("协议:" + url.getProtocol());
        System.out.println("域名/IP:" + url.getHost());
        System.out.println("端口:" + url.getPort());
        System.out.println("请求资源1:" + url.getFile());
        System.out.println("请求资源1:" + url.getPath());
        System.out.println("参数:" + url.getQuery());
        System.out.println("锚点:" + url.getRef());

    }
}
传输协议 UDP
package net.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;


public class UdpClientTest {

    public static void main(String[] args) throws IOException {
        System.out.println("发送端启动。。。");

        //1、使用DatagramSocket,指定端口,创建发送端
        DatagramSocket ds = new DatagramSocket(55000);
        //2、准备数据,必须转换为字节数组
        String data = "Hello world";
        byte[] datas = data.getBytes();
        //3、封装成DatagramPacket包裹,并指定目的地
        DatagramPacket dp = new DatagramPacket(datas, 0, datas.length, new InetSocketAddress("localhost", 56000));
        //4、发送包裹send
        ds.send(dp);
        //5、释放资源
        ds.close();

        System.out.println("发送端关闭。。。");
    }
}
package net.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;


public class UdpServerTest {

    public static void main(String[] args) throws IOException {
        System.out.println("接收端启动。。。");

        //1、使用DatagramSocket,指定端口,创建接收端
        DatagramSocket ds = new DatagramSocket(56000);
        //2、准备容器,封装成DatagramPacket包裹
        byte[] container = new byte[1024 * 60];
        DatagramPacket dp = new DatagramPacket(container, 0, container.length);
        //3、阻塞式接受包裹receive
        ds.receive(dp);
        //4、分析数据
        byte[] datas = dp.getData();
        int len = dp.getLength();
        System.out.println(new String(datas, 0, len));
        //5、释放资源
        ds.close();

        System.out.println("接收端关闭。。。");
    }
}
TCP
package net.tcp;

import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class Server {

    public static void main(String[] args) throws IOException {
        // 1、指定端口创建服务端,使用ServerSocket创建服务端
        ServerSocket server = new ServerSocket(8989);
        // 2、阻塞式等待连接accept
        Socket client = server.accept();
        System.out.println("建立一个连接");
        // 3、进行 *** 作:输入输出流 *** 作
        DataInputStream dis = new DataInputStream(client.getInputStream());
        String str = dis.readUTF();
        System.out.println(str);
        // 4、释放资源
        dis.close();
        client.close();

        server.close();
    }
}

 

package net.tcp;

import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;


public class Client {

    public static void main(String[] args) throws IOException {
        // 1、建立连接,使用Socket创建客服端,传入服务端地址和端口
        Socket client = new Socket("localhost", 8989);
        // 2、进行 *** 作,输入输出流 *** 作
        DataOutputStream dos = new DataOutputStream(client.getOutputStream());
        String str = "hello";
        dos.writeUTF(str);
        // 3、释放资源
        dos.close();
        client.close();
    }
}
网络编程应用-->爬虫基本原理
package net;

import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import java.net.URL;


public class SpiderTest {

    public static void main(String[] args) throws IOException {
        //获取URL
        URL url = new URL("https://www.baidu.com");
        
//         InputStream is = url.openStream();
//         BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

        
        HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
        con.setRequestMethod("GET");
        con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.40");
        BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
        String temp = null;
        while (null != (temp = br.readLine())) {
            System.out.println(temp);
        }
        //获取资源后还需要分析和处理,再次不再深入
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5435636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存