📜  Java Networking(网络)(1)

📅  最后修改于: 2023-12-03 14:42:15.429000             🧑  作者: Mango

Java Networking(网络)

Java Networking(网络)是Java编程语言的一部分,提供了访问网络的类和接口。开发Java网络应用程序的常见方法是使用Java的网络套接字(Socket)类。此外,Java还提供了一些其他实用程序,如URL、URLConnection和DatagramSocket等,可用于网络编程。

Socket

Java的网络套接字(Socket)类是Java的网络编程的核心,它提供了一个用于活动套接字的多种操作,并允许数据在网络之间传送。Java的Socket类位于java.net包中。以下是Java的Socket类的主要方法:

  • Socket()
  • Socket(String host, int port)
  • connect(SocketAddress endpoint)
  • getInputStream()
  • getOutputStream()
  • close()

以下是一个简单的Socket程序示例:

import java.net.*;
import java.io.*;
public class SocketProgram {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("127.0.0.1", 8080);
            
            DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
            dos.writeUTF("Hello from client!");
            
            DataInputStream dis = new DataInputStream(socket.getInputStream());
            System.out.println("Server says: " + dis.readUTF());
            
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
URL和URLConnection

Java中的URL类允许您建立到指定URL的连接并检索有关该URL的信息。URLConnection类允许你通过打开一个通道来执行诸如读取文本信息、保存数据等操作。

以下是一个简单的URL和URLConnection程序示例:

import java.net.*;
import java.io.*;

public class URLConnectionExample {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://www.example.com");
            URLConnection urlcon = url.openConnection();
            InputStream stream = urlcon.getInputStream();
            int i;
            while ((i = stream.read()) != -1) {
                System.out.print((char) i);
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
DatagramSocket

Java的DatagramSocket类允许在网络上进行无连接数据传输。以下是Java的DatagramSocket类的主要方法:

  • DatagramSocket()
  • DatagramSocket(int port)
  • DatagramPacket(byte[] data, int length)
  • send(DatagramPacket p)
  • receive(DatagramPacket p)
  • close()

以下是一个简单的DatagramSocket程序示例:

import java.net.*;
import java.io.*;
public class DatagramSocketProgram {
    public static void main(String[] args) throws Exception {
        DatagramSocket ds = new DatagramSocket();
        String str = "Hello from client!";
        InetAddress ip = InetAddress.getByName("127.0.0.1");

        DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(), ip, 3000);
        ds.send(dp);
        
        byte[] buf = new byte[1024];
        DatagramPacket dp1 = new DatagramPacket(buf, 1024);
        ds.receive(dp1);
        String str2 = new String(dp1.getData(), 0, dp1.getLength());
        
        System.out.println("Server says: " + str2);

        ds.close();
    }
}
总结

Java Networking(网络)是现代应用程序开发中不可或缺的部分,无论是访问Web服务还是与其他应用程序通信。Java提供了轻松、高效和可靠的网络编程API,其中一些包括Socket、URL、URLConnection和DatagramSocket。程序员可以根据需要选择适合他们应用程序的类和方法。