Java中网络通信函数的使用与示例
发布时间:2023-05-26 10:32:10
Java中的网络通信主要是通过Socket和ServerSocket类实现的。Socket类可以建立一个客户端连接,而ServerSocket类则可以在服务器端监听连接请求。以下是一些常用的网络通信函数及其示例。
Socket类的常用函数
1.构造函数:Socket(String host, int port)
用于创建一个客户端套接字,并指定连接的主机和端口号。例如:
Socket clientSocket = new Socket("localhost", 8080);
2.构造函数:Socket(InetAddress address, int port)
用于创建一个客户端套接字,并指定连接的IP地址和端口号。例如:
InetAddress serverAddr = InetAddress.getByName("192.168.1.1");
Socket clientSocket = new Socket(serverAddr, 8080);
3.函数:InputStream getInputStream()
用于获取输入流,即从服务器读取数据。例如:
InputStream in = clientSocket.getInputStream(); byte[] buffer = new byte[1024]; int len = in.read(buffer);
4.函数:OutputStream getOutputStream()
用于获取输出流,即向服务器发送数据。例如:
OutputStream out = clientSocket.getOutputStream();
byte[] data = "Hello, server".getBytes("UTF-8");
out.write(data);
5.函数:void close()
用于关闭套接字。例如:
clientSocket.close();
ServerSocket类的常用函数
1.构造函数:ServerSocket(int port)
用于创建一个服务器套接字,并指定监听的端口号。例如:
ServerSocket serverSocket = new ServerSocket(8080);
2.函数:Socket accept()
用于等待并接受客户端的连接,返回一个新的Socket对象。例如:
Socket clientSocket = serverSocket.accept();
3.函数:int getLocalPort()
用于获取服务器监听的端口号。例如:
int port = serverSocket.getLocalPort();
4.函数:void close()
用于关闭服务器套接字。例如:
serverSocket.close();
示例:
客户端发送数据:
import java.net.*;
import java.io.*;
public class Client {
public static void main(String[] args) {
try {
Socket clientSocket = new Socket("localhost", 8080);
OutputStream out = clientSocket.getOutputStream();
byte[] data = "Hello, server".getBytes("UTF-8");
out.write(data);
clientSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
服务器接收数据:
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(8080);
Socket clientSocket = serverSocket.accept();
InputStream in = clientSocket.getInputStream();
byte[] buffer = new byte[1024];
int len = in.read(buffer);
System.out.println(new String(buffer, 0, len, "UTF-8"));
clientSocket.close();
serverSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上是Java中常见的网络通信函数和示例。在实际开发中,也可以使用Java提供的高级网络通信框架,如Netty和Spring Boot等。
