您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中,有多种方法可以实现网络服务端与客户端之间的通信。这里,我将向您介绍两种常用的方法:使用Socket
和使用ServerSocket
与Socket
。
Socket
和ServerSocket
进行通信:服务器端(ServerSocket):
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);
Socket socket = serverSocket.accept();
System.out.println("Client connected");
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String message = reader.readLine();
System.out.println("Received message: " + message);
OutputStream outputStream = socket.getOutputStream();
PrintWriter writer = new PrintWriter(outputStream, true);
writer.println("Message received by server");
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端(Socket):
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);
System.out.println("Connected to server");
OutputStream outputStream = socket.getOutputStream();
PrintWriter writer = new PrintWriter(outputStream, true);
writer.println("Hello, server!");
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String message = reader.readLine();
System.out.println("Received message from server: " + message);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
HttpURLConnection
进行通信(适用于HTTP协议):服务器端(Server):
import java.io.*;
import java.net.*;
public class HttpServer {
public static void main(String[] args) {
int port = 8080;
try {
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("Server is listening on port " + port);
Socket socket = serverSocket.accept();
System.out.println("Client connected");
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String requestLine = reader.readLine();
System.out.println("Received request: " + requestLine);
OutputStream outputStream = socket.getOutputStream();
PrintWriter writer = new PrintWriter(outputStream, true);
writer.println("HTTP/1.1 200 OK");
writer.println("Content-Type: text/plain");
writer.println("Content-Length: 13");
writer.println();
writer.println("Hello, client!");
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端(Socket):
import java.io.*;
import java.net.*;
public class HttpClient {
public static void main(String[] args) {
String serverAddress = "localhost";
int port = 8080;
try {
URL url = new URL("http://" + serverAddress + ":" + port);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
int responseCode = connection.getResponseCode();
System.out.println("Response code: " + responseCode);
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
System.out.println("Received message from server: " + response.toString());
} else {
System.out.println("GET request failed");
}
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上示例展示了如何使用Java的Socket
和ServerSocket
进行通信,以及如何使用HttpURLConnection
进行HTTP协议通信。您可以根据自己的需求选择合适的方法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。