为了账号安全,请及时绑定邮箱和手机立即绑定

请问下面的程序要怎么改,为什么会出现异常?

请问下面的程序要怎么改,为什么会出现异常?

绝地无双 2022-04-21 15:11:04
import java.io.*;import java.net.*;import java.util.*;class FileName implements FilenameFilter{String str=null;FileName (String s){str="."+s;}public boolean accept(File dir,String name){return name.endsWith(str);}}public class Server{public static void main(String args[]){ServerSocket server=null;Socket you=null;while(true){try{server=new ServerSocket(6666);}catch(IOException e1){System.out.println("正在监听");}try {you=server.accept();InetAddress address=you.getInetAddress();System.out.println("客户的IP:"+address);}catch (IOException e){}if(you!=null){new Server_thread(you).start();}else {continue;}}}}
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

you=server.accept(); 这句话出的异常

原因可能是你启动了2个服务器端,而后虽然你处理了第一个异常,就是IOException e1,就是端口被占用,但程序依然向下执行到you=server.accept(); . 所以抛出 java.lang.NullPointerExceptionat

修改方法 : 程序改为

while(true)
{
try
{
server=new ServerSocket(6666);

} catch(BindException e)
{
System.out.println("端口使用中");
System.out.println("请关掉相关程序并重新运行服务器");
System.exit(0);
} catch (IOException e) {
e.printStackTrace();
}



查看完整回答
反对 回复 2022-04-24
?
杨魅力

TA贡献1811条经验 获得超6个赞

空指针错误,在用server ,you 之前,先判断一下是不是为null;
if(you==null) return;
if(server==null) return;
就不会出现这个错误了

查看完整回答
反对 回复 2022-04-24
  • 2 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信