基于SOCKET的网络编程Java
时间: 2023-07-26 16:08:47 浏览: 63
基于SOCKET的网络编程是一种常见的网络通信方式,Java也提供了相关的API来支持这种编程模型。在Java中,可以使用java.net包中的Socket和ServerSocket类来实现基于SOCKET的网络编程。
下面是一个简单的示例,演示了如何在Java中实现基于SOCKET的网络编程:
```java
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws IOException {
// 创建ServerSocket对象,监听指定端口
ServerSocket serverSocket = new ServerSocket(12345);
// 等待客户端连接
Socket clientSocket = serverSocket.accept();
// 创建输入流和输出流
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
// 读取客户端发送的消息,并将其返回
String inputLine;
while ((inputLine = in.readLine()) != null) {
out.println(inputLine);
}
// 关闭连接
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
```
上述代码是一个简单的服务器端实现。该服务器会监听指定的端口(此处为12345),等待客户端的连接。一旦有客户端连接,服务器将创建输入流和输出流,并通过这些流与客户端进行通信。服务器会读取客户端发送的消息,并将其返回给客户端。最后,在关闭连接之前,需要关闭输入流、输出流、客户端套接字和服务器套接字。
客户端代码如下:
```java
import java.net.*;
import java.io.*;
public class Client {
public static void main(String[] args) throws IOException {
// 创建Socket对象,连接指定主机和端口
Socket socket = new Socket("localhost", 12345);
// 创建输入流和输出流
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// 向服务器发送消息,并读取其返回结果
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " + in.readLine());
}
// 关闭连接
out.close();
in.close();
stdIn.close();
socket.close();
}
}
```
上述代码是一个简单的客户端实现。该客户端会连接到指定的主机(此处为localhost)和端口(此处为12345)。一旦连接成功,客户端将创建输入流和输出流,并通过这些流与服务器进行通信。客户端会向服务器发送消息,并读取其返回结果。最后,在关闭连接之前,需要关闭输入流、输出流和套接字。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)