使用Java进行网络编程:Socket通信示例
在Java中,我们可以使用Socket类来进行网络通信。以下是一个简单的Socket通信示例:
- 创建服务器端(Server)
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(8000)); {
System.out.println("Server is running on port 8000...");
Socket clientSocket = serverSocket.accept();
System.out.println("New connection established with " + clientSocket);
// 这里可以编写处理客户端数据的代码
DataHandler handler = new DataHandler(clientSocket);
while (true) {
String dataFromClient = handler.readData();
if (dataFromClient != null) {
System.out.println("Received from client: " + dataFromClient);
// 这里可以编写发送数据到客户端的代码
handler.writeData(dataFromClient);
} else {
break; // 数据已读完,跳出循环
}
}
clientSocket.close();
} catch (IOException e) {
System.out.println("An error occurred while establishing connection: " + e.getMessage());
e.printStackTrace();
}
}
}
- 创建客户端端(Client)
import java.io.*;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try (Socket socket = new Socket("localhost", 8000)); {
System.out.println("Connecting to server...");
OutputStream outputStream = socket.getOutputStream();
DataGenerator generator = new DataGenerator(outputStream);
// 这里可以编写发送数据到服务器的代码
generator.sendData("Hello, Server!");
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()))));
String responseFromServer = reader.readLine();
System.out.println("Received from server: " + responseFromServer));
socket.close();
} catch (IOException e) {
System.out.println("An error occurred while establishing connection to the server: " + e.getMessage());
e.printStackTrace();
}
}
}
这个示例中,服务器端(Server)创建一个监听8000端口的Socket。客户端端(Client)连接到服务器,并发送一条数据,然后接收并打印服务器返回的数据。
请注意,实际应用中可能需要对数据进行加密和解密等操作。
还没有评论,来说两句吧...