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();
}
杨魅力
TA贡献1811条经验 获得超6个赞
空指针错误,在用server ,you 之前,先判断一下是不是为null;
if(you==null) return;
if(server==null) return;
就不会出现这个错误了
添加回答
举报
0/150
提交
取消