您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中,使用Socket套接字进行数据传输主要涉及到两个类:java.net.Socket
(用于客户端)和java.net.ServerSocket
(用于服务器端)。以下是使用这两个类实现数据传输的基本步骤:
创建ServerSocket对象:
ServerSocket serverSocket = new ServerSocket(port);
其中port
是服务器监听的端口号。
接受客户端连接:
Socket clientSocket = serverSocket.accept();
这行代码会阻塞,直到有客户端连接到服务器。
获取输入输出流:
InputStream input = clientSocket.getInputStream();
OutputStream output = clientSocket.getOutputStream();
读取和写入数据:
// 读取客户端发送的数据
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String receivedData = reader.readLine();
// 向客户端发送数据
PrintWriter writer = new PrintWriter(output, true);
writer.println("Hello, Client!");
关闭资源:
reader.close();
writer.close();
clientSocket.close();
serverSocket.close();
创建Socket对象:
Socket socket = new Socket(serverAddress, port);
其中serverAddress
是服务器的IP地址或主机名,port
是服务器监听的端口号。
获取输入输出流:
InputStream input = socket.getInputStream();
OutputStream output = socket.getOutputStream();
读取和写入数据:
// 向服务器发送数据
PrintWriter writer = new PrintWriter(output, true);
writer.println("Hello, Server!");
// 读取服务器发送的数据
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String receivedData = reader.readLine();
System.out.println(receivedData);
关闭资源:
reader.close();
writer.close();
socket.close();
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
int port = 12345;
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("Server is listening on port " + port);
while (true) {
try (Socket clientSocket = serverSocket.accept()) {
System.out.println("New client connected");
InputStream input = clientSocket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
OutputStream output = clientSocket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
String receivedData = reader.readLine();
System.out.println("Received from client: " + receivedData);
writer.println("Hello, Client!");
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
String serverAddress = "localhost";
int port = 12345;
try (Socket socket = new Socket(serverAddress, port)) {
OutputStream output = socket.getOutputStream();
PrintWriter writer = new PrintWriter(output, true);
writer.println("Hello, Server!");
InputStream input = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String receivedData = reader.readLine();
System.out.println("Received from server: " + receivedData);
} catch (UnknownHostException e) {
System.err.println("Don't know about host " + serverAddress);
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
通过上述步骤和示例代码,你可以在Java中使用Socket套接字实现基本的数据传输。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。