⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.java

📁 基于JAVA的ICQ系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        out.println(r5.getString("email"));
        out.println(r5.getString("info"));
     } //while
     r5.close();
}//for
//发送完毕
     out.println("over");
     System.out.println("over");
      c4.close();r4.close();
}catch (Exception e){e.printStackTrace();System.out.println("false");}
//socket.close();
}//end friend
//读取好友信息完毕
//以下处理用户添加好友
 else if(str.equals("addfriend")){
System.out.println("add");
 try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection c6=DriverManager.getConnection("jdbc:odbc:javaicq"," "," ");
 //连接数据库,根据接受的用户号码及好友号码向好友表添加记录
        int friendicqno=Integer.parseInt(in.readLine());
          System.out.println(friendicqno);
         int myicqno=Integer.parseInt(in.readLine());
            System.out.println(myicqno);
            String addfriend="insert into friend values(?,?)";
             PreparedStatement prepare6=c6.prepareCall(addfriend);
      prepare6.clearParameters();
       prepare6.setInt(1,myicqno);
       prepare6.setInt(2,friendicqno);
       int  r6=0;
      r6=prepare6.executeUpdate();
      if(r6==1) System.out.println("ok  addfrien");
      else  System.out.println("false addfriend");

}catch (Exception e){e.printStackTrace();System.out.println("false");}

//socket.close();
System.out.println("over addfriend");
}//end addfriend
//用户添加好友结束
//add new friend who add me
//以下处理其他用户如果加我,我就加他
 else if(str.equals("addnewfriend")){
System.out.println("add");
 try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection c6=DriverManager.getConnection("jdbc:odbc:javaicq"," "," ");
  //连接数据库,根据接受的用户号码及好友号码向好友表添加记录
        int friendicqno=Integer.parseInt(in.readLine());
          System.out.println(friendicqno);
         int myicqno=Integer.parseInt(in.readLine());
            System.out.println(myicqno);
            String addfriend="insert into friend values(?,?)";
             PreparedStatement prepare6=c6.prepareCall(addfriend);
      prepare6.clearParameters();
       prepare6.setInt(1,myicqno);
       prepare6.setInt(2,friendicqno);
       int  r6=0;
      r6=prepare6.executeUpdate();
      if(r6==1) System.out.println("ok  addfrien");
      else  System.out.println("false addfriend");

String friendinfo="select nickname,icqno,ip,status,pic,email,info from icq where icqno=?";
//如果成功,就向用户传递好友的基本信息,比如呢称等
      PreparedStatement prepare5=c6.prepareCall(friendinfo);
      prepare5.clearParameters();
       prepare5.setInt(1,friendicqno);
      ResultSet r5=prepare5.executeQuery();
      boolean status;
         while(r5.next()){
         System.out.println("dsf");
       out.println(r5.getString("nickname"));
           out.println(r5.getInt("icqno"));
           out.println(r5.getString("ip"));
         status=r5.getBoolean("status");
         if (status)out.println("1");
           else {out.println("0");}
        out.println(r5.getInt("pic"));
        out.println(r5.getString("email"));
        out.println(r5.getString("info"));
     } //while
       out.println("over");
     r5.close();
     c6.close();
}catch (Exception e){e.printStackTrace();System.out.println("false");}
System.out.println("over addnewfriend");
}//end addfriend
//结束处理其他用户如果加我,我就加他
//delete friend
//以下执行用户删除好友
else if(str.equals("delfriend")){
System.out.println("del");
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection c7=DriverManager.getConnection("jdbc:odbc:javaicq"," "," ");
 //连接数据库,根据接受的用户号码及好友号码向好友表删除记录
        int friendicqno=Integer.parseInt(in.readLine());
          System.out.println(friendicqno);
         int myicqno=Integer.parseInt(in.readLine());
            System.out.println(myicqno);
            String addfriend="delete from friend where icqno=? and friend=?";
             PreparedStatement prepare7=c7.prepareCall(addfriend);
      prepare7.clearParameters();
       prepare7.setInt(1,myicqno);
       prepare7.setInt(2,friendicqno);
       int  r7=0;
      r7=prepare7.executeUpdate();
      if(r7==1) System.out.println("ok  delfrien");//成功
      else  System.out.println("false delfriend");//失败
}catch (Exception e){e.printStackTrace();System.out.println("del false");}
}//end delete friend
//执行用户删除好友结束
//以下处理用户退出程序
else if(str.equals("logout")){
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection c8=DriverManager.getConnection("jdbc:odbc:javaicq"," "," ");
  //连接数据库,根据接受的用户号码,将其状态字段设为0,及ip地址设为空
         int myicqno=Integer.parseInt(in.readLine());
            System.out.println(myicqno);
             String status="update icq set status=0 , ip=' ' where icqno=?";
                      PreparedStatement prest8=c8.prepareCall(status);
                       prest8.clearParameters();
                       prest8.setInt(1,myicqno);
                   int r8=prest8.executeUpdate();
                     if(r8==1) System.out.println("ok  logout");
      else  System.out.println("false logout");
}catch (Exception e){e.printStackTrace();System.out.println("logout false");}
}//logout end
//处理用户退出程序结束
//get who add me as friend
//以下处理那些人加了我为好友,以便上线通知他们
else if(str.equals("getwhoaddme")){
System.out.println("getwhoaddme");
 try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection c9=DriverManager.getConnection("jdbc:odbc:javaicq"," "," ");
 //连接数据库,根据我的号码,从好友表中选择谁加了我
        int myicqno=Integer.parseInt(in.readLine());
            System.out.println(myicqno);
            String getwhoaddme="select icqno from friend where friend=?";
             PreparedStatement prepare6=c9.prepareCall(getwhoaddme);
      prepare6.clearParameters();
       prepare6.setInt(1,myicqno);
      ResultSet r6=prepare6.executeQuery();
    Vector who=new Vector();
        while(r6.next()){
      who.add(new Integer(r6.getInt(1)));
   }//end while
//然后告诉这些好友的ip地址,然后发给用户以便告诉其他客户我上线了
    for(int i=0;i<who.size();i++){
     String whoinfo="select ip from icq where icqno=? and status=1";
      PreparedStatement prepare=c9.prepareCall(whoinfo);
      prepare.clearParameters();
       prepare.setObject(1,who.get(i));
      ResultSet r=prepare.executeQuery();
       while(r.next()){
         out.println(r.getString("ip"));
            } //while
           r.close();
         }//for
     out.println("over");
     System.out.println("over");
      c9.close();r6.close();
}catch (Exception e){e.printStackTrace();System.out.println("false");}
}//end get who add me as friend
//处理上线结束
   System.out.println("Echo ing :"+str);
    }  System.out.println("Close...");
      }catch(IOException e){}//捕或异常
      finally {try{socket.close();}
                     catch(IOException e){}
    }
  }
}
public class Server{//主服务器类
public static void main(String args[])throws IOException{
ServerSocket s=new ServerSocket(8080);//在8080端口创建套接口
System.out.println("Server start.."+s);
try{
     while(true){Socket socket=s.accept();//无限监听客户的请求
                      System.out.println("Connectino accept:"+socket);
                  try{new ServerThread(socket);//创建新线程
                  }catch(IOException e){socket.close();}
                }
      }finally{s.close();}//捕或异常
    }
}//服务器程序结束

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -