下面我会针对“Java Socket实现单线程通信的方法示例”的攻略进行详细解答。
1. 什么是Java Socket
Java Socket是一种用于网络编程的API,它提供了简单、高效的网络通信方式,允许程序通过网络连接来进行数据传输。
2. Java Socket实现单线程通信的方法
2.1 创建服务器
下面是一个简单的Java Socket服务器实现:
import java.net.*;
import java.io.*;
public class Server {
private ServerSocket serverSocket;
public Server(int port) throws IOException {
serverSocket = new ServerSocket(port);
}
public void run() {
while(true) {
try {
Socket socket = serverSocket.accept();
DataInputStream in = new DataInputStream(socket.getInputStream());
System.out.println(in.readUTF());
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeUTF("Thx for ur connection!");
socket.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException {
Server server = new Server(8888);
server.run();
}
}
以上代码中,首先创建了一个ServerSocket
对象用于监听来自客户端的连接请求。当有客户端连接时,服务器会获取对应的输入流和输出流,然后进行通信。数据传输使用DataInputStream
和DataOutputStream
进行,这两个类经过封装可以很方便地进行数据读写操作。
2.2 创建客户端
下面是一个简单的Java Socket客户端:
import java.net.*;
import java.io.*;
public class Client {
private Socket socket;
public Client(String ip, int port) throws IOException {
socket = new Socket(ip, port);
}
public void run() {
try {
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeUTF("Hello from " + socket.getLocalSocketAddress());
DataInputStream in = new DataInputStream(socket.getInputStream());
System.out.println(in.readUTF());
socket.close();
} catch(IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
Client client = new Client("localhost", 8888);
client.run();
}
}
以上代码中,首先创建了一个Socket
对象用于连接指定的服务器。连接成功后,客户端会获取对应的输入流和输出流,然后进行通信。数据传输也是使用DataInputStream
和DataOutputStream
进行,这两个类经过封装可以很方便地进行数据读写操作。
3. 程序的运行流程
- 先运行服务器程序,它会监听8888端口来接收来自客户端的请求。
- 运行客户端程序,它会向服务器8888端口发送一条消息。
- 服务器接收到客户端发送的消息后,会在控制台上输出消息内容,并向客户端发送一条回复消息。
- 客户端接收到服务器发送的回复消息后,在控制台上输出消息内容。
- 连接结束后,服务器和客户端都会关闭连接。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Socket实现单线程通信的方法示例 - Python技术站