网络编程:JavaSocket通信问题案例
在Java编程中,Socket是一种用于在网络上进行双向通信的API。以下是一个简单的Socket通信问题案例:
客户端(发送方)代码:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) {
try {
// 创建连接
Socket socket = new Socket("localhost", 1234); // 地址为localhost,端口为1234
// 获取输出流
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true));
// 发送数据
writer.println("Hello from Client!");
// 关闭资源
writer.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器端(接收方)代码:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(1234); // 端口为1234
System.out.println("Server is listening...");
Socket client = server.accept(); // 接受客户端连接
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()))); // 从客户端接收数据
PrintWriter writer = new PrintWriter(client.getOutputStream(), true)); // 向客户端发送数据
String message;
while ((message = in.readLine()) != null) {
System.out.println("Received from Client: " + message);
writer.println("Server received the message. Sending acknowledgement back to client.");
}
writer.close();
in.close();
client.close();
server.close();
}
}
案例中,客户端向服务器发送一条消息,然后接收服务器的确认回话。这个简单的通信过程展示了Socket编程的基本应用。
还没有评论,来说两句吧...