写了一个简单的服务器的程序在IDEA上运行没有问题,但是在转成.exe后出现了如下错误,也试过cmd查询杀死端口但是不好使

如图,.Server.exe可以正常运行,但是cheatA和cheatB都无法正常运行

//server.exe
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws Exception {
        ServerSocket sst=new ServerSocket(11451);
        ServerSocket ssk=new ServerSocket(11452);
        // byte[] C1_out=new byte[10000];
        byte[] C1_in= new byte[10000];
        //byte[] C2_out=new byte[10000];
        byte[] C2_in= new byte[10000];

        Socket c1=sst.accept();
        Socket c2=ssk.accept();
        OutputStream os1=c1.getOutputStream();
        OutputStream os2=c2.getOutputStream();
        InputStream is1=c1.getInputStream();
        InputStream is2=c2.getInputStream();
        is1.read(C1_in);
        os2.write(C1_in);
        is2.read(C2_in);
        os1.write(C2_in);



    }
}

//CheaterA.exe
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class CheatA {
    public static void main(String[] args) throws IOException {
        Scanner sc=new Scanner(System.in);
        Socket res=new Socket("192.168.10.131",11451);
        byte[] bt=new byte[10000];
        int len=0;
        OutputStream os =res.getOutputStream();
        InputStream is=res.getInputStream();
        while(true) {
            os.write(sc.next().getBytes(StandardCharsets.UTF_8));
            len = is.read(bt);
            System.out.println("r:"+bt.toString());
        }
    }
}

//CheaterB.exe
import java.io.IOException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;


public class CheaterB {
    public static void main(String[] args) throws IOException {
        Scanner sc=new Scanner(System.in);
        Socket res=new Socket("192.168.10.131",11452);
        byte[] bt=new byte[10000];
        int len=0;
        OutputStream os =res.getOutputStream();
        InputStream is=res.getInputStream();
        while(true) {
            os.write(sc.next().getBytes(StandardCharsets.UTF_8));
            len = is.read(bt);
            System.out.println("r:"+bt.toString());
        }
    }
}


img

端口占用问题。一个exe文件已经运行,再次运行就会报端口占用。
可能是因为双击运行exe文件吧,触发了多次。
试着关闭进程,或者重启电脑。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632