簡體   English   中英

Java 客戶端服務器套接字錯誤:java.net.BindException:地址已在使用:綁定

[英]Java Client Server Socket Error: java.net.BindException: Address already in use: bind

這是服務器端代碼我很確定錯誤是服務器套接字沒有關閉端口? 運行程序時沒有問題,但是,當我再次運行它時,出現此錯誤:

Exception in thread "main" java.net.BindException: Address already in use: bind
    at java.base/sun.nio.ch.Net.bind0(Native Method)
    at java.base/sun.nio.ch.Net.bind(Net.java:550)
    at java.base/sun.nio.ch.Net.bind(Net.java:539)
    at java.base/sun.nio.ch.NioSocketImpl.bind(NioSocketImpl.java:643)
    at java.base/java.net.ServerSocket.bind(ServerSocket.java:396)
    at java.base/java.net.ServerSocket.<init>(ServerSocket.java:282)
    at java.base/java.net.ServerSocket.<init>(ServerSocket.java:173)
    at internet.server.main(server.java:11)

但是,如果我更改端口號,它會修復一次運行。 有人也請幫助我還沒有學會 java 服務器 sockets 或客戶端 sockets 但據我所知我需要幫助沒有其他人有這個問題

package internet;

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

public class server {

    public static void main(String[] args) throws IOException {
        println("Compiled");
        ServerSocket ss = new ServerSocket(5502);
        Socket s = ss.accept();
        println("Client Connected!");
        InputStreamReader in = new InputStreamReader(s.getInputStream());
        BufferedReader bf = new BufferedReader(in);
        String str = bf.readLine();
        println("Client: " + str);
        
        s.close();
        ss.close();
            
    }
    
    public static void println(String args) {
        System.out.println(args);
    }
}

只要您在重新運行之前終止先前的執行,這就可以正常工作。

嘗試關閉這些流、InputStreamReader 和 BufferedReader。 在 socket 和 ServerSocket 之前關閉它們。

bf.close();
in.close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM