Java网络编程客户端开发实例
在Java中,进行网络编程客户端开发主要涉及到Socket、ServerSocket、HTTP等API。以下是一个简单的客户端示例,使用Socket连接服务器:
- 创建服务端(Server.java):
```java
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
// 创建一个ServerSocket监听5000端口
ServerSocket server = new ServerSocket(5000);
System.out.println("服务器已启动,等待客户端连接...");
while (true) {
// 获取并创建一个新的Socket对象来与客户端通信
Socket client = server.accept();
try {
// 创建一个PrintWriter对象用于向客户端发送数据
PrintWriter out = new PrintWriter(client.getOutputStream(), true));
// 向客户端发送消息
out.println("服务器已接收到你的请求。");
// 关闭客户端的输出流
out.close();
// 关闭Socket连接
client.close();
} catch (IOException e) {
System.out.println("与客户端通信时发生错误: " + e.getMessage());
try {
// 尝试关闭无效的Socket
client.close();
} catch (IOException ioe) {
System.out.println("在尝试关闭无效Socket时,出现新的错误: " + ioe.getMessage());
}
}
}
}
}
2. 创建客户端(Client.java):
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
// 创建一个Socket对象来与服务器通信
Socket socket = new Socket("localhost", 5000)); // 注意:此处localhost表示本地服务器,如果服务器部署在其他机器上,请替换为该机器的IP地址。
System.out.println("客户端已连接到服务器...");
try (BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())))) {
String inputLine;
while ((inputLine = br.readLine()) != null)) {
System.out.println("服务器响应: " + inputLine);
}
} catch (IOException e) {
System.out.println("与服务器通信时出现错误: " + e.getMessage());
}
// 关闭Socket连接
socket.close();
}
}
这样,客户端就成功连接到服务端,并通过Socket进行数据交换。
还没有评论,来说两句吧...