0
点赞
收藏
分享

微信扫一扫

进行网络编程TCP和UDP时,出现错误Exception in thread "main" java.net.BindException: Address a

一:概述

首次接触网络编程时,出现了这个错误。进行查找相关资料和解决办法,最后解决了问题。

                     进行网络编程TCP和UDP时,出现错误Exception in thread "main" java.net.BindException: Address a_端口号

二:具体说明

出现这种情况的原因是由于程序异常关闭,进而导致端口被异常关闭的僵尸程序所占用。

     解决办法

在cmd命令行通过netstat -ano | findstr 8080

netstat -ano | findstr 10000

查询到被占用的端口号(8080)的进程

                     进行网络编程TCP和UDP时,出现错误Exception in thread "main" java.net.BindException: Address a_端口号_02

根据进程号(pid),输入以下的命令,强制杀死该端口号的僵尸程序。

taskkill /pid 11628 /F

                     进行网络编程TCP和UDP时,出现错误Exception in thread "main" java.net.BindException: Address a_java_03

经过此过程,程序就可以正常启动了。

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;

public class Server {
    public static void main(String[] args) throws IOException {
        //System.out.println(123);
        // 存活
        ServerSocket ss = new ServerSocket(8080); // 监听8080端口
        for (; ; ) {
            Socket socket = ss.accept();
            Thread t = new Handler(socket);
            t.start();
        }
        //System.out.println(ss.accept().getInetAddress());

        // 对外提供访问路径
        // 解析request
        // 处理业务逻辑
        // 封装response


    }


}

// 处理每一个进入的请求
class Handler extends Thread {

    Socket socket;

    public Handler() {

    }

    public Handler(Socket socket) {
        this.socket = socket;
    }

    // 对外提供访问路径
    // 解析request
    // 处理业务逻辑
    // 封装response
    @Override
    public void run() {
        System.out.println(12);
        try {
            InputStream inputStream = this.socket.getInputStream();
            OutputStream outputStream = this.socket.getOutputStream();
            handle(inputStream, outputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    private void handle(InputStream input, OutputStream output) throws IOException {
        var reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8));
        var writer = new BufferedWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8));

        // 通知http请求
        boolean isOk = false;
        String first = reader.readLine();
        System.out.println(first);
    }


}

                     进行网络编程TCP和UDP时,出现错误Exception in thread "main" java.net.BindException: Address a_System_04

举报

相关推荐

0 条评论