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

📄 server.java~1~

📁 本系统充分利用了Java语言的平台无关性等众多优点
💻 JAVA~1~
📖 第 1 页 / 共 2 页
字号:
//发送完毕
            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",
                "sa", "shift");
            //连接数据库,根据接受的用户号码及好友号码向好友表添加记录
            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",
                "sa", "shift");
            //连接数据库,根据接受的用户号码及好友号码向好友表添加记录
            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",
                "sa", "shift");
            //连接数据库,根据接受的用户号码及好友号码向好友表删除记录
            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",
                "sa", "shift");
            //连接数据库,根据接受的用户号码,将其状态字段设为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",
                "sa", "shift");
            //连接数据库,根据我的号码,从好友表中选择谁加了我
            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 + -