您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在Java中,套接字(Socket)是一种用于实现网络通信的端点。它允许不同计算机上的应用程序通过网络进行数据交换。Java提供了两个主要的类库来实现套接字编程:java.net.Socket
和 java.net.ServerSocket
。
ServerSocket:
ServerSocket
类用于在服务器端监听特定端口上的连接请求。ServerSocket
会接受这个连接,并返回一个 Socket
对象,该对象代表与客户端的通信通道。Socket:
Socket
类用于在客户端和服务器之间建立连接。Socket
对象进行双向数据传输。ServerSocket
实例并绑定到一个特定的端口。ServerSocket
的 accept()
方法来监听连接请求。accept()
方法返回一个 Socket
对象。Socket
对象进行数据传输。Socket
和 ServerSocket
。import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(8080)) {
System.out.println("Server is listening on port 8080");
while (true) {
Socket socket = serverSocket.accept();
System.out.println("New client connected");
// Handle the client connection in a separate thread
new ClientHandler(socket).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ClientHandler extends Thread {
private Socket socket;
public ClientHandler(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try (BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Received from client: " + inputLine);
out.println("Server received: " + inputLine);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Socket
实例并连接到服务器的地址和端口。Socket
对象进行数据传输。Socket
。import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 8080);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in))) {
System.out.println("Connected to server. Type messages to send:");
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("Server response: " + in.readLine());
}
} catch (UnknownHostException e) {
System.err.println("Don't know about host: localhost");
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
ServerSocket
用于服务器端监听连接请求。Socket
用于客户端与服务器之间的通信。Socket
对象的输入流和输出流进行。通过这种方式,Java应用程序可以实现基于TCP/IP协议的网络通信。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。