您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。