这里是Java面试题冲刺第六天--网络编程1的完整攻略。
网络编程基础
计算机网络体系结构
计算机网络体系结构分为五层,自下而上分别为物理层,数据链路层,网络层,传输层和应用层。其中应用层是最上层,为用户直接提供服务。
IP地址和端口号
IP地址和端口号是计算机在网络上进行通信的两个重要组成部分。IP地址是唯一标识一个计算机在网络中的位置,端口号则是唯一标识一个运行在该计算机上的程序。
Socket编程
在Java中,网络编程可以通过Socket来实现。Socket是网络编程中的一个概念,它表示通信链的另一端。通过Socket,程序可以在网络上与其他程序进行通信。
Java网络编程示例
下面是两个Java网络编程的示例。
示例1:建立TCP连接并发送消息
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 建立TCP连接
Socket socket = new Socket("localhost", 8888);
// 获取输出流
OutputStream out = socket.getOutputStream();
PrintWriter writer = new PrintWriter(out);
// 发送消息
writer.println("Hello, Server!");
writer.flush();
// 关闭流和连接
writer.close();
out.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class Server {
public static void main(String[] args) {
try {
// 建立TCP服务
ServerSocket serverSocket = new ServerSocket(8888);
// 接收客户端连接
Socket socket = serverSocket.accept();
// 获取输入流
InputStream in = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
// 读取客户端消息
String line = reader.readLine();
System.out.println(line);
// 关闭流和连接
reader.close();
in.close();
socket.close();
serverSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上代码实现了一个简单的TCP连接,并在客户端向服务端发送消息,服务端接收消息并打印。
示例2:建立UDP连接并发送消息
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 建立UDP连接
DatagramSocket socket = new DatagramSocket();
// 发送数据
String message = "Hello, Server!";
byte[] data = message.getBytes();
InetAddress address = InetAddress.getByName("localhost");
DatagramPacket packet = new DatagramPacket(data, data.length, address, 8888);
socket.send(packet);
// 关闭连接
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class Server {
public static void main(String[] args) {
try {
// 建立UDP服务
DatagramSocket socket = new DatagramSocket(8888);
// 接收数据
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
String message = new String(packet.getData(), 0, packet.getLength());
System.out.println(message);
// 关闭连接
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上代码实现了一个简单的UDP连接,并在客户端向服务端发送消息,服务端接收消息并打印。
通过以上示例,可以了解如何使用Java进行简单的网络编程。在实际应用中,网络编程还有更广泛和复杂的应用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java面试题冲刺第六天–网络编程1 - Python技术站