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

📄 server.java

📁 彷qq聊天工具代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                     
                  }
                  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","sa");
                    //连接数据库,根据接受的用户号码及好友号码向好友表添加记录
                     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","sa");
                     //连接数据库,根据接受的用户号码及好友号码向好友表添加记录
                      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","sa");
                      //连接数据库,根据接受的用户号码及好友号码向好友表删除记录
                      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","sa");
                     //连接数据库,根据接受的用户号码,将其状态字段设为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","sa");
                     //连接数据库,根据我的号码,从好友表中选择谁加了我
                     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();
                    
               }
               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(9000);//在9000端口创建套接口
        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 + -