qq_44755477 2020-02-29 15:07 采纳率: 0%
浏览 402

在TCP服务器端中这段代码有什么用try { if (reader != null) { reader.close(); // 关闭流 } if (socket != null) { socket.close(); // 关闭套接字 }

package p349;

import java.io.*;
import java.net.*;

public class MyTcp { // 创建类MyTcp
private BufferedReader reader; // 创建BufferedReader对象
private ServerSocket server; // 创建ServerSocket对象
private Socket socket; // 创建Socket对象socket

void getserver() {
    try {
        server = new ServerSocket(8997); // 实例化Socket对象
        System.out.println("服务器套接字已经创建成功"); // 输出信息
        while (true) { // 如果套接字是连接状态
            System.out.println("等待客户机的连接"); // 输出信息
            socket = server.accept(); // 实例化Socket对象
            reader = new BufferedReader(new InputStreamReader(socket
                    .getInputStream())); // 实例化BufferedReader对象
            getClientMessage(); // 调用getClientMessage()方法
        }
    } catch (Exception e) {
        e.printStackTrace(); // 输出异常信息
    }
}

private void getClientMessage() {
    try {
        while (true) { // 如果套接字是连接状态
            if (reader.ready()) {
                // 获得客户端信息
                System.out.println("客户机:" + reader.readLine());
            }
        }
    } catch (Exception e) {
        e.printStackTrace(); // 输出异常信息
    }
    try {
        if (reader != null) {
            reader.close(); // 关闭流
        }
        if (socket != null) {
            socket.close(); // 关闭套接字
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public static void main(String[] args) { // 主方法
    MyTcp tcp = new MyTcp(); // 创建本类对象
    tcp.getserver(); // 调用方法
}

}

  • 写回答

3条回答 默认 最新

  • threenewbee 2020-02-29 15:27
    关注

    把打开的socket和reader关闭,释放端口

    评论

报告相同问题?

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)