编写简单的TCP网络程序,掌握ServerSocket、Socket类的具体用法:编写服务器端类ServerDemo,在ServerDemo类中创建服务器端ServerSocket对象,并依次编写监听连接、获取输入流,打印读取数据,释放资源等操作。编写客户端类ClientDemo,在ClientDemo类中创建客户端Socket对象,并分别编写建立连接、获取输出流,释放资源等步骤。依次执行ServerDemo和ClientDemo类,观察命令行输出变化。
时间: 2023-12-10 15:38:49 浏览: 78
使用C#语言,实现基于Socket的简单TCP的客户端的编写。代码有详细注释,可供没有了解Socket的人学习
以下是一个简单的TCP网络程序的示例代码:
ServerDemo.java
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerDemo {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
Socket socket = null;
BufferedReader reader = null;
try {
// 创建服务器端ServerSocket对象,端口号为8888
serverSocket = new ServerSocket(8888);
System.out.println("服务器已启动,等待客户端连接...");
// 监听连接
socket = serverSocket.accept();
System.out.println("客户端已连接:" + socket.getInetAddress().getHostAddress());
// 获取输入流
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
// 打印读取数据
while ((line = reader.readLine()) != null) {
System.out.println("客户端发送的数据:" + line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// 释放资源
if (reader != null) {
reader.close();
}
if (socket != null) {
socket.close();
}
if (serverSocket != null) {
serverSocket.close();
}
}
}
}
```
ClientDemo.java
```java
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class ClientDemo {
public static void main(String[] args) throws IOException {
Socket socket = null;
OutputStreamWriter writer = null;
try {
// 创建客户端Socket对象,连接服务器端IP为127.0.0.1,端口号为8888
socket = new Socket("127.0.0.1", 8888);
// 获取输出流
writer = new OutputStreamWriter(socket.getOutputStream());
// 向服务器端发送数据
writer.write("Hello Server!");
writer.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 释放资源
if (writer != null) {
writer.close();
}
if (socket != null) {
socket.close();
}
}
}
}
```
在命令行中先执行ServerDemo类,再执行ClientDemo类,观察命令行输出变化。可以看到,当客户端连接成功后,服务器端会打印出客户端已连接的提示,并且在客户端发送数据后,服务器端会打印出客户端发送的数据。
阅读全文