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

📄 server.java

📁 The JICQ is the bureau area which JAVA writes according to "Customer s Machine/Server"(C/S) mode mes
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                        //以下告诉客户其好友的呢称,号码,ip地址,状态,头像,个人资料等信息
                        out.println(friendno.size());
                        for (int i = 0; i < friendno.size(); i++) {
                            String friendinfo =
                            "select nickname,icqno,ip,status,pic,email,info from icq where icqno=?";
                            PreparedStatement prepare5 =
                            c4.prepareCall(friendinfo);
                            prepare5.clearParameters();
                            prepare5.setObject(1, friendno.get(i));
                            ResultSet r5 = prepare5.executeQuery();
                            boolean status;
                            while (r5.next()) {
                                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
                            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(
                        dserver,
                        duser,
                        dpass);
                        //连接数据库,根据接受的用户号码及好友号码向好友表添加记录
                        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(
                        dserver,
                        duser,
                        dpass);
                        //连接数据库,根据接受的用户号码及好友号码向好友表添加记录
                        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(
                        dserver,
                        duser,
                        dpass);
                        //连接数据库,根据接受的用户号码及好友号码向好友表删除记录
                        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(
                        dserver,
                        duser,
                        dpass);
                        //连接数据库,根据接受的用户号码,将其状态字段设为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(
                        dserver,
                        duser,
                        dpass);
                        //连接数据库,根据我的号码,从好友表中选择谁加了我
                        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) {
            }
        }
    }
}

⌨️ 快捷键说明

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