Java网络编程:Socket通信简单案例
在Java中,Socket是一种用于客户端和服务器之间双向通信的API。以下是一个简单的Socket通信案例:
- 客户端(Client.java):
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
// 创建一个Socket对象
Socket socket = new Socket("localhost", 1234); // "localhost"是服务器地址,1234是你设置的端口号
// 获取输出流,用于向服务器发送数据
OutputStream outputStream = socket.getOutputStream();
// 写数据到输出流
PrintWriter writer = new PrintWriter(outputStream, true));
writer.println("Hello Server!"); // 发送一条消息
// 关闭资源
writer.close();
socket.close();
}
}
- 服务器(Server.java):
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
// 创建一个Socket监听器,用于接收客户端连接请求
ServerSocket serverSocket = new ServerSocket(1234); // 设置端口号
// 等待客户端连接
Socket clientSocket = serverSocket.accept();
// 获取输入流,用于从客户端接收数据
InputStream inputStream = clientSocket.getInputStream();
// 创建一个字节缓冲区,用于暂时存储读取到的数据
byte[] buffer = new byte[1024]]; // 设置缓冲区大小
// 从输入流读取数据,并写入到缓冲区
int count;
while ((count = inputStream.read(buffer))) != -1) {
// 处理读取到的数据,这里只是简单地打印出来
System.out.println(new String(buffer, 0, count)) + " from client");
}
// 关闭资源
clientSocket.close();
serverSocket.close();
}
}
以上两个Java文件分别代表客户端和服务器。通过运行这两个程序,客户端会向服务器发送一条消息,然后服务器会打印收到的消息,并关闭连接。
还没有评论,来说两句吧...