3.编写简单的TCP网络程序,掌握ServerSocket、Socket类的具体用法:编写服务器端类ServerDemo,在ServerDemo类中创建服务器端ServerSocket对象,并依次编写监听连接、获取输入流,打印读取数据,释放资源等操作。编写客户端类ClientDemo,在ClientDemo类中创建客户端Socket对象,并分别编写建立连接、获取输出流,释放资源等步骤。依次执行ServerDemo和ClientDemo类,观察命令行输出变化。
时间: 2023-12-14 13:39:23 浏览: 84
以下是一个简单的TCP网络程序示例,包括服务器端和客户端:
ServerDemo.java
```java
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo {
public static void main(String[] args) {
try {
// 创建ServerSocket对象,监听端口号为8888
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
// 接收客户端连接请求,返回Socket对象
Socket socket = serverSocket.accept();
System.out.println("客户端已连接...");
// 获取输入流,读取客户端发送的数据
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) != -1) {
// 打印读取的数据
System.out.println("收到客户端消息:" + new String(buffer, 0, len));
}
// 释放资源
inputStream.close();
socket.close();
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
ClientDemo.java
```java
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class ClientDemo {
public static void main(String[] args) {
try {
// 创建Socket对象,指定服务器IP地址和端口号
Socket socket = new Socket("localhost", 8888);
// 获取输出流,向服务器发送数据
OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello, Server!".getBytes());
// 释放资源
outputStream.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
执行ServerDemo类后,将会输出以下信息:
```
服务器已启动,等待客户端连接...
客户端已连接...
收到客户端消息:Hello, Server!
```
执行ClientDemo类后,将会向服务器发送一条消息。服务器端会接收到该消息并打印输出。
阅读全文