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

📄 serverframe.java

📁 用java写的聊天系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                            prest.setInt(3,g);                            int set=prest.executeUpdate();                            jInfoTextArea.append(" ip="+socket.getInetAddress().getHostAddress()+"\n");                            jInfoTextArea.append("udp send port="+Integer.toString(udpport+clientNum)+"\n");                            String row[]=new String[2];                            row[0]=nickname;                            row[1]=icqno;                            userList.addRow(row);                        }                    }//否者告诉客户失败                    else                     {                        out.println("false");                        jInfoTextArea.append(" Password Error\n");                    }                    r.close();c.close();                }                else{// 不存在该jicq号码                    out.println("false");                    jInfoTextArea.append("login false\n");                    r.close();                    c.close();                }            }            catch (Exception e){e.printStackTrace();}        }        /** 新建用户 */        private void newUser() {            try {                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库                Connection c2=DriverManager.getConnection(url,username,password);                String newsql="insert into icq(nickname,password,email,info,place,pic,sex,ip,status,sendport) " +                        "values(?,?,?,?,?,?,?,?,'上线',?)";                PreparedStatement prepare2=c2.prepareCall(newsql);                //准备接受用户的呢称,密码,email,个人资料,籍贯,头像等信息                String nickname=in.readLine().trim();                String password=in.readLine().trim();                String email=in.readLine().trim();                String info=in.readLine().trim();                String place=in.readLine().trim();                int picindex=Integer.parseInt(in.readLine());                String sex=in.readLine().trim();                prepare2.clearParameters();                prepare2.setString(1,nickname);                prepare2.setString(2,password);                prepare2.setString(3,email);                prepare2.setString(4,info);                prepare2.setString(5,place);                prepare2.setInt(6,picindex);                prepare2.setString(7,sex);                prepare2.setString(8,socket.getInetAddress().getHostAddress());                prepare2.setInt(9,udpport+clientNum);                int r3=prepare2.executeUpdate();//执行数据库添加                String sql2="select icqno from icq where nickname=?";                //告诉客户其注册的号码                PreparedStatement prepare3=c2.prepareCall(sql2);                prepare3.clearParameters();                prepare3.setString(1,nickname);                ResultSet r2=prepare3.executeQuery();                if(r2.next()){                    //如果相同就告诉客户ok                    out.println("ok");                    int no=r2.getInt(1);                    jInfoTextArea.append(nickname+"注册成功!  jicq号码为:"+Integer.toString(no)+"\n");                    String row[]=new String[2];                    row[0]=nickname;                    row[1]=Integer.toString(no);                    out.println(row[1]);//返回给客户注册号码                    userList.addRow(row);                    //返回给客户一个udp发送端口号                    out.println(udpport+clientNum);                }                else out.println("false");                c2.close();            }// end of "new" try            catch (Exception e){e.printStackTrace();}        }        private void findFriends(){            try{                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                Connection c3=DriverManager.getConnection(url,username,password);                String myjicq=in.readLine().trim();                //以下连接数据库,并且返回其他用户的jicq号码,呢称,是否在线,ip地址,udp发送端口,个人资料,头像号,性别,邮件,籍贯                String find="select * from icq where icqno<>"+myjicq;                Statement st=c3.createStatement();                ResultSet result=st.executeQuery(find);                while(result.next()){                    out.println(result.getString("nickname"));                    out.println(result.getString("icqno"));                    out.println(result.getString("status"));                    out.println(result.getString("ip"));                    out.println(result.getString("sendport"));                    out.println(result.getString("info"));                    out.println(result.getString("pic"));                    out.println(result.getString("sex"));                    out.println(result.getString("email"));                    out.println(result.getString("place"));                }//while end                out.println("over");                result.close();c3.close();            }            catch (Exception e){e.printStackTrace();}        }        private void getFriendsInfo(){            try{                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                Connection c4=DriverManager.getConnection(url,username,password);                //以下连接好友表,返回用户的好友名单                String friend="select friend from friend where icqno=?";                PreparedStatement prepare4=c4.prepareCall(friend);                prepare4.clearParameters();                int icqno=Integer.parseInt(in.readLine().trim());                jInfoTextArea.append("获得"+Integer.toString(icqno)+"的好友资料");                prepare4.setInt(1,icqno);                ResultSet r4=prepare4.executeQuery();                Vector friendno=new Vector();//该矢量保存好友号码                while(r4.next()){                    friendno.add(new Integer(r4.getInt(1)));                }                r4.close();                //以下告诉客户其好友的呢称,号码,ip地址,端口,状态,头像,个人资料等信息                for(int i=0;i<friendno.size();i++){                    String friendinfo="select * from icq where icqno=?";                    PreparedStatement prepare5=c4.prepareCall(friendinfo);                    prepare5.clearParameters();                    prepare5.setObject(1,friendno.get(i));                    ResultSet r5=prepare5.executeQuery();                    while(r5.next()){                        out.println(r5.getString("nickname"));                        out.println(r5.getString("icqno"));                        out.println(r5.getString("status"));                        out.println(r5.getString("ip"));                        out.println(r5.getString("sendport"));                        out.println(r5.getString("info"));                        out.println(r5.getString("pic"));                        out.println(r5.getString("sex"));                        out.println(r5.getString("email"));                        out.println(r5.getString("place"));                    }                    r5.close();                }                out.println("over");                jInfoTextArea.append("over\n");                c4.close();            }            catch (Exception e){e.printStackTrace();}        }                private void addFriend(){            try{                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                Connection c6=DriverManager.getConnection(url,username,password);                //连接数据库,根据接受的用户号码及好友号码向好友表添加记录                int friendicqno=Integer.parseInt(in.readLine());                int myicqno=Integer.parseInt(in.readLine());                jInfoTextArea.append(Integer.toString(friendicqno)+" and "+Integer.toString(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)jInfoTextArea.append(" addfriend ok\n");                else jInfoTextArea.append("addfriend false\n");                                String friendinfo="select * from icq where icqno=?";                //如果成功,就向用户传递好友的基本信息,比如呢称等                PreparedStatement prepare5=c6.prepareCall(friendinfo);                prepare5.clearParameters();                prepare5.setInt(1,friendicqno);                ResultSet r5=prepare5.executeQuery();                if(r5.next()){                    out.println(r5.getString("nickname"));                    out.println(r5.getString("icqno"));                    out.println(r5.getString("status"));                    out.println(r5.getString("ip"));                    out.println(r5.getString("sendport"));                    out.println(r5.getString("info"));                    out.println(r5.getString("pic"));                    out.println(r5.getString("sex"));                    out.println(r5.getString("email"));                    out.println(r5.getString("place"));                }                out.println("over");                r5.close();c6.close();            }            catch (Exception e){e.printStackTrace();}        }                private void deleteFriend(){            try{                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                Connection c7=DriverManager.getConnection(url,username,password);                //连接数据库,根据接受的用户号码及好友号码向好友表删除记录                int friendicqno=Integer.parseInt(in.readLine());                int myicqno=Integer.parseInt(in.readLine());                jInfoTextArea.append(Integer.toString(friendicqno)+" and "+Integer.toString(myicqno));                String sql="delete from friend where icqno=? and friend=?";                PreparedStatement prepare7=c7.prepareCall(sql);                prepare7.clearParameters();                prepare7.setInt(1,myicqno);                prepare7.setInt(2,friendicqno);                int r7=0;                r7=prepare7.executeUpdate();                if(r7==1)jInfoTextArea.append(" delete friend ok\n");//成功                else jInfoTextArea.append(" delete friend false\n");//失败            }            catch (Exception e){e.printStackTrace();}        }                private void logout(){            try{                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                Connection c8=DriverManager.getConnection(url,username,password);                //连接数据库,根据接受的用户号码,将其状态字段设为0,及ip地址设为空                int myicqno=Integer.parseInt(in.readLine());                jInfoTextArea.append(Integer.toString(myicqno));                String status="update icq set status='离线',ip=' ' where icqno=?";                PreparedStatement prest8=c8.prepareCall(status);                prest8.clearParameters();                prest8.setInt(1,myicqno);                int r8=prest8.executeUpdate();                if(r8==1){                    jInfoTextArea.append(" logout ok\n");                    out.println("ok");                    for(int i=0;i<userList.getRowCount();i++){                        if(myicqno==Integer.parseInt((String)userList.getValueAt(i,1))){                            userList.removeRow(i);                            break;                        }                                            }                                    }                else{                    jInfoTextArea.append(" logout false\n");                    out.println("false");                }            }            catch (Exception e){e.printStackTrace();}                    }            }// end of class ServerThread}

⌨️ 快捷键说明

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